用户、权限管理
用户管理
用户相关文件:
/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>