天天看点

用户和权限管理-RHCEday2

用户、权限管理

用户管理 

用户相关文件:

/etc/passwd:存储用户信息 

格式:

用户登录名:密码占位符:uid:gid:描述信息:宿主目录:SHELL

/etc/shadow:存储用户密码信息

用户:

基本组

附加组

相关操作:

1、创建用户

# useradd [选项] <username>

选项:

-u <uid> 指定用户uid 

-g <gid> 指定用户的基本组

-G <gid> 指定用户的附加组

-s <shell> 指定用户的SHELL名称,默认为/bin/bash

-M 不创建用户宿主目录

-d <dir_name> 指定用户的宿主目录

-e <YYYY-MM-DD> 指定用户的过期时间

-c <comment> 指定用户的描述信息

2、设置用户密码

# passwd [选项] [username]

选项: 

-S   查看用户密码状态

-l 锁定用户密码

-u 解锁用户密码

-f:强制

-e 强制用户密码过期

3、修改用户的属性

# usermod [选项] <username>

选项: 

-u <uid>

-g <gid>

-G <gid>

-aG:用于为用户指定多个附加组

-s <shell>

-L 锁定用户密码

-U 解锁用户密码

-l 更改用户名

4、删除用户

# userdel [-r] <username>

-r:同时删除用户宿主目录

5、查看用户

# id [选项] <username> 

# id userA 

# id -u userA 

# id -g userA 

# id -G userA 

# id -n -u userA 

# id -n -g userA 

# id -n -G userA 

每新建一个用户,系统会自动从/etc/skel目录下复制环境变量配置文件到用户的宿主目录

.bashrc:用户登录系统时

.bash_profile:用户在打开一个新终端 

.bash_logout:用户注销时

/etc/bashrc 

/etc/profile

用户组:

/etc/group:存储用户组信息

/etc/gshadow:存储用户组密码信息

1、创建用户组

# groupadd [-g <number>] <groupname>

2、删除用户组

# groupdel <groupname>

重置root用户密码:

1、重启系统,在grub菜单按上、下键停止,选择第一项按字母"e"进入编辑启动配置文件

2、找到linux16开头的行,在行末添加rd.break console=tty0;按ctrl+x再次启动

3、以读写的方式重新挂载根目录,并以/sysroot为根

# mount -o remount,rw /sysroot 

# chroot /sysroot 

4、使用passwd命令重置root用户密码

5、在根目录下创建隐藏文件,以便重置文件的SELINUX安全上下文 

# touch /.autorelabel

6、两次exit退出并重新启动

权限管理 

常规权限:r读取  4, w写入   2 , x执行   1

文件:

r:查看文件内容(cat/more/less/head/tail)

w:查看、修改文件内容(vim)

x:SHELL脚本/python脚本

目录:

r:查看目录中文件(ls /test)

w:查看、修改目录下的文件

x:可切换到该目录(cd )

查看文件权限:

# ls -l /1.txt 

-rw-r--r--. 1 tom caiwu 76 Apr 15 23:38 /1.txt

查看目录权限

# ls -ld /etc/

drwxr-xr-x. 134 root root 8192 Apr 15 23:45 /etc/

修改文件/目录权限:

1、修改权限---chmod 

1) # chmod {augo}{+-=}{rwx} <filename> 

a:all所有用户

u:user 属主

g:group 属组

o:other 其他用户

# chmod g+wx /tmp/1.txt

# chmod u+r,g-x,g+r /tmp/1.txt

2) # chmod nnn <filename> 

# chmod 600 /tmp/1.txt

4 r

2 w

1 x

rwx = 4+2+1 = 7

2、修改文件所属-----chown 

# chown <user>.<group> <filename>

# chown tom.caiwu /caiwu/1.txt 

# chown tom /caiwu/2.txt 

# chown tom. /caiwu/3.txt 

# chown .caiwu /caiwu/4.txt

专用于修改属组的命令:

# chgrp tom /caiwu/4.txt

共同选项:

-R 递归修改

# chmod -R 700 /caiwu/

特殊权限:

suid, sgid, sticky bit 

1、suid 4

针对命令、脚本设置

当一个命令拥有suid权限时,普通用户在执行命令的过程中,会临时获取到命令属主用户的权限 

# ls -l /usr/bin/passwd 

-rwsr-xr-x. 1 root root 27832 Jan 29  2014 /usr/bin/passwd

设置suid权限

# chmod u+s <filename>

2、sgid 2

针对目录进行设置

当一个目录拥有sgid时,在目录下创建文件,文件会自动继承目录的属组

# ls -ldh /test/

drwxr-sr-x. 2 root caiwu 42 Apr 16 01:54 /test/

设置sgid权限

# chmod g+s /test 

3、sticky bit 1

针对目录进行设置

当一个目录拥有sticky bit权限时,目录下的文件只有文件属主、目录属主、root用户可以删除 

# ls -ld /tmp/

drwxrwxrwt. 9 root root 4096 Apr 16 02:00 /tmp/

设置sticky bit 权限

# chmod o+t /test 

/project 

经理:jl

员工:tom,jerry 

facl------文件访问控制列表 

1、设置facl权限 

# setfacl -m u:<username>:<rwx>  <filename> 

# setfacl -m g:<groupname>:<rwx>  <filename> 

2、查看facl权限

# getfacl /1.txt

getfacl: Removing leading '/' from absolute path names

# file: 1.txt

# owner: user1

# group: user2

user::rw-

user:user4:r--

group::r-x

mask::r-x

other::rwx

3、删除facl权限

# setfacl -x u:<username> <filename>

# setfacl -x g:<groupname> <filename>