**用户管理 ** 用户帐号 与 组帐号 唯一标识: UID(用户的ID) GID(组的ID) 管理员的UID为:0 用户 /etc/passwd #用户基本信息 添加用户 useradd -u 设置账户UID -d 设置账户家目录 默认为/home/用户名 -g 设置账户所属基本组 -e 设置账户的失效日期 格式为YYYY-MM-DD -G 设置账户所属附加组 -s 设置账户登陆Shell

例:

	[root@server0 ~]# grep 'nsd01' /etc/passwd
	nsd01:x:1001:1001::/home/nsd01:/bin/bash
	用户名:密码占位符:UID:GID:用户的描述信息:家目录:解释器
	[root@server0 /]#  useradd  nsd01
	[root@server0 /]#  id  nsd01 
	[root@server0 /]#  grep  'nsd'  /etc/passwd 
	
	[root@server0 /]#  useradd -u 1100 nsd02     #指定UID
	[root@server0 /]#  grep  'nsd'  /etc/passwd 

	[root@server0 /]#  useradd -d /op/haha nsd03  #指定家目录
	[root@server0 /]#  grep  'nsd'  /etc/passwd 
	   指定登陆的解释器程序
	[root@server0 /]#  useradd -s /sbin/nologin nsd04 
	[root@server0 /]#  grep  'nsd'  /etc/passwd
	  如果用户的解释器程序为/sbin/nologin则不能登陆操作系统
	[root@server0 /]# useradd -g nsd01 nsd09
	[root@server0 /]# id nsd09

	[root@server0 /]# useradd -G nsd01  nsd10
	[root@server0 /]# id nsd10

修改用户信息 usermod -u 修改账户UID -d 修改账户家目录 -g 修改账户所属基本组 -G 修改账户所属附加组 -e 修改账户的失效日期 -s 修改账户登陆Shell

显示账户信息 id 用户名

删除用户 userdel -r 递归删除 删除用户家目录

临时切换用户身份 su - 用户名

账户密码 /etc/shadow #用户密码信息 [root@server0 ~]# head -1 /etc/shadow root:$6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1:16261:0:99999:7::: 用户名 : 密码 : 上一次修改时间 : 密码最短使用时间 : 密码最长使用时间 : 提前多少时间警告::: 修改密码: passwd 用户名 -l 锁定账户 -u 解锁账户 #管理员模式下 echo '密码' | passwd --stdin 用户名 #非交互式更改密码

组账户管理 组账户: 方便管理用户帐号(权限)把相同权限用户加入到同一个组中 分类: 基本组 附加组(公共组 从属组) /etc/group #组基本信息 创建组帐号 groupadd

例:

	[root@server0 ~]# useradd kenji
	[root@server0 ~]# useradd tom
	[root@server0 ~]# useradd kaka
	[root@server0 ~]# useradd henter
	[root@server0 ~]# groupadd   tarena
	[root@server0 ~]# grep 'tarena' /etc/group

gpasswd gpasswd -a #加入组成员 gpasswd -d #删除组成员 gpasswd -M #覆盖组成员

例:

	gpasswd - M '' 组名	#删除该组全部成员	
	[root@server0 ~]# grep 'tarena' /etc/group  #查看组信息
	[root@server0 ~]# gpasswd -a kenji tarena   #加入组成员
	[root@server0 ~]# id kenji 
	[root@server0 ~]# gpasswd -a tom tarena
	[root@server0 ~]# grep 'tarena' /etc/group
	[root@server0 ~]# gpasswd -a kaka tarena
	[root@server0 ~]# grep 'tarena' /etc/group
	[root@server0 ~]# gpasswd -d kenji tarena   #删除组成员
	[root@server0 ~]# grep 'tarena' /etc/group
	[root@server0 ~]# gpasswd -M 'kenji,henter' tarena
	[root@server0 ~]# grep 'tarena' /etc/group
	[root@server0 ~]# gpasswd -M 'kenji,kaka,tom,henter' tarena
	[root@server0 ~]# grep 'tarena' /etc/group
	[root@server0 ~]# gpasswd -M  '' tarena
	[root@server0 ~]# grep 'tarena' /etc/group

用户安全:

passwd -l锁定 -u解锁 -S 看状态

	[root@server0 ~# useradd test
	[root@server0 ~]# echo 123 | passwd --stdin test
			更改用户 test 的密码 。
			passwd:所有的身份验证令牌已经成功更新。
	[root@server0 ~]# passwd -S test
	test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
	[root@server0 ~]# passwd -l test
			锁定用户 test 的密码 。
			passwd: 操作成功
	[root@server0 ~]# passwd -S test
			test LK 2018-01-01 0 99999 7 -1 (密码已被锁定。)
	[root@server0 ~# passwd -u test
			解锁用户 test 的密码。
			passwd: 操作成功
	[root@server0 ~]# passwd -S test
			test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

chage #查看用户信息 选项: -d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” 0 强制修改密码 -E, --expiredate 过期日期 将帐户过期时间设为“过期日期” yyyy/mm/dd 指定失效日期 (-1 取消) -h, --help 显示此帮助信息并推出 -I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态 -l, --list 显示帐户年龄信息 -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数” -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数” -R, --root CHROOT_DIR chroot 到的目录 -W, --warndays 警告天数 将过期警告天数设为“警告天数”

	[root@server0 ~]# chage -E 2018/01/31 tom
	[root@server0 ~]# chage -l tom
	最近一次密码修改时间					:1月 02, 2018
	密码过期时间					:从不
	密码失效时间					:从不
	帐户过期时间						:1月 31, 2018
	两次改变密码之间相距的最小天数		:0
	两次改变密码之间相距的最大天数		:99999
	在密码过期之前警告的天数	:7

与用户相关的配置问文件 /etc/passwd /etc/shadow /etc/login.defs #添加系统用户的默认配置文件 /etc/skel/ #存储用户系统环境配置文件

[root@test ~]# ls /etc/skel/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@test ~]# useradd yy1
[root@test ~]# ls /home/yy1/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@test ~]# touch /etc/skel/test.txt
[root@test ~]# useradd yy2
[root@test ~]# ls -a /home/yy2/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  test.txt

基本权限的类型 访问方式(权限) 读取:允许查看内容 -read r 写入:允许修改内容 -write w 可执行:允许运行和切换 -execuit x

对于文本文件: r: cat head tail less w: vim x: 运行

权限适用对象(归属) 所有者:拥有此文件/目录的用户-user u 所属组:拥有此文件/目录的组-group g 其他用户:除所有者,所属组以外的用户-other o

[root@server0 ~]# ls -ld /etc/
drwxr-xr-x. 133 root root 8192 10月 30 10:14 /etc/
[root@server0 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2089 10月 30 10:14 /etc/passwd
[root@server0 ~]# ls -l /etc/rc.local 
lrwxrwxrwx. 1 root root 13 5月   7 2014 /etc/rc.local -> rc.d/rc.local

权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

权限位(9位) 文件类型(1) User(属主)(3) Group(属组)(3) Other(其他人)(3)

文件类型

  • 代表普通文件 d 代表目录 l 代表链接文件 三位一组分别为 所有者权限,所属组权限,其他账户权限

设置基本权限 chmod (只root能用) chmod 归属关系+-=权限类别 文档 -R 递归将权限应用于所有的子目录与子文件

	[root@server0 ~]# chmod u-x /nsd01/
	[root@server0 ~]# ls -ld /nsd01/
	drw-r-xr-x. 2 root root 6 10月 30 10:41 /nsd01/
	[root@server0 ~]# chmod g+w /nsd01/
	[root@server0 ~]# ls -ld /nsd01/
	drw-rwxr-x. 2 root root 6 10月 30 10:41 /nsd01/
	[root@server0 ~]# chmod u=rwx,g=rx,o=r /nsd01/
	[root@server0 ~]# ls -ld /nsd01/
	drwxr-xr--. 2 root root 6 10月 30 10:41 /nsd01/

如何判断用户具备权限 1.判断用户所属的身份 是否是所有者 是否在所有组 所有者>所属组 >其他人 匹配及停止 2.看相应权限位的权限划分

目录的r 权限:能够ls 浏览此目录内容 目录的w 权限:能够执行 rm/mv/cp/mkdir/touch/..等更改目录内容的操作 目录的x 权限:能够cd切换到此目录

设置文件归属 使用chown命令 chown [所有者][:[所属组]] 文件或目录 -R 递归将权限应用于所有的子目录与子文件 例:

		[root@server0 /]# chown :tedu /nsd02
		[root@server0 /]# ls -ld /nsd02
		drwxr-xr-x. 2 root tedu 6 10月 30 11:42 /nsd02
		[root@server0 /]# useradd dc
		[root@server0 /]# chown dc:tedu /nsd02
		[root@server0 /]# ls -ld /nsd02
		drwxr-xr-x. 2 dc tedu 6 10月 30 11:42 /nsd02
		[root@server0 /]# chown student /nsd02
		[root@server0 /]# ls -ld /nsd02
		drwxr-xr-x. 2 student tedu 6 10月 30 11:42 /nsd02

特殊权限(附加权限)

Set UID 附加在属主的x位上 属主的权限标识会变成s 适用于可执行文件,Set UID 可以让使用者具有文件属组的身份及部分权限 (传递所有者身份) 如 手持尚方宝剑 例:

[root@server0 /]# cp /usr/bin/touch  /usr/bin/hahach
[root@server0 /]# chmod u+s /usr/bin/hahach
[root@server0 /]# ls -l /usr/bin/hahach 
-rwsr-xr-x. 1 root root 62432 10月 30 14:14 /usr/bin/hahach
[root@server0 /]# su - dc
[dc@server0 ~]$ touch a.txt	
[dc@server0 ~]$ hahach b.txt
[dc@server0 ~]$ ls -l
total 0
-rw-rw-r--. 1 dc   dc 0 Oct 30 14:15 a.txt
-rw-rw-r--. 1 root dc 0 Oct 30 14:15 b.txt

Set GID 附加在属组的x位 属组的权限标识变成为s 适用于可执行文件,功能于Set UID类似 适用于目录,Set GID可以是目录下新增的文档自动设置与父目录相同的属组

为了使在这个目录下新增的文件或目录的所属组和父目录相同(只针对未来生成的文件)

例:

[root@server0 /]# ls -l /test/1.txt 
-rw-r--r--. 1 root root 0 10月 30 14:37 /test/1.txt
[root@server0 /]# chown :tedu /test/
[root@server0 /]# chmod g+s /test/
[root@server0 /]# ls -ld /test
drwxr-sr-x. 2 root tedu 18 10月 30 14:37 /test
[root@server0 /]# mkdir /test/testone
[root@server0 /]# ls -l /test/
-rw-r--r--. 1 root root 0 10月 30 14:37 1.txt
drwxr-sr-x. 2 root tedu 6 10月 30 14:39 testone

Sticky Bit 附加在其他人的x位 其他人的权限标识变成为t 适用于开放w 权限的目录,可以阻止用户滥用w 写入权限 (禁止操作别人的文档) 例:

[root@server0 /]# chmod u+w,g+w,o+w /public/
[root@server0 /]# chmod o+t /public/
[root@server0 /]# ls -ld /public/
drwxrwxrwt. 2 root root 6 10月 30 14:43 /public/

[zhangsan@server0 /]$ ls -l /public/
-rw-rw-r--. 1 dc       dc       0 Oct 30 14:53 dc.txt
-rw-rw-r--. 1 test     test     0 Oct 30 14:52 test.txt
-rw-rw-r--. 1 zhangsan zhangsan 0 Oct 30 14:52 zhangsan.txt
[zhangsan@server0 /]$ rm -rf /public/test.txt 
rm: cannot remove ‘/public/test.txt’: Operation not permitted

ACL 访问控制列表 作用 文档归属的局限性 任何人只属于三种角色:属主,属组,其他人 无法实现更精细的控制 acl访问策略 能狗对个别用户,个别组设置独立的权限 大多挂载EXT3/4(存储小文件),XFS(存储大文件)文件系统已支持 命令 getfacl 文档 #查看ACL策略 setfacl [-R] -m u:用户名:权限类别 文档 setfacl [-R] -m g:组名 :权限类别 文档 setfacl [-R] -x u:用户名 文档 #删除指定ACL策略 setfacl [-R] -b 文档 #清空ACL策略

例:

	[dc@server0 ~]$ cd /NB/
	bash: cd: /NB/: Permission denied

	[root@server0 /]# ls -ld /NB/
	drwxrwx---. 2 root cw 6 10月 30 15:27 /NB/
	[root@server0 /]# setfacl -m u:dc:rx /NB/
	[root@server0 /]# ls -ld /NB/
	drwxrwx---+ 2 root cw 6 10月 30 15:27 /NB/
	[root@server0 /]# getfacl /NB/
	getfacl: Removing leading '/' from absolute path names
	# file: NB/
	# owner: root
	# group: cw
	user::rwx
	user:dc:r-x
	group::rwx
	mask::rwx
	other::---

	[dc@server0 ~]$ cd /NB/
	[dc@server0 NB]$ 

权限的数值变化 权限的数值化 基本权限:r=4,w=2,x=1 附加权限:SUID=4,SGID=2,Sticky Bit=1 采取数值形式设置权限 chmod [-R ] nnn 文当 设置基本权限 chmod [-R ] xnnn 文档 设置附加权限(x为附加权限数值)

	例如:
	[root@room1pc32 桌面]# mkdir /test01
	[root@room1pc32 桌面]# ls -ld /test01
	drwxr-xr-x. 2 root root 6 11月 11 09:26 /test01
	[root@room1pc32 桌面]# chmod 007 /test01
	[root@room1pc32 桌面]# ls -ld /test01
	d------rwx. 2 root root 6 11月 11 09:26 /test01
	[root@room1pc32 桌面]# chmod 777 /test01 
	[root@room1pc32 桌面]# ls -ld /test01
	drwxrwxrwx. 2 root root 6 11月 11 09:26 /test01
	[root@room1pc32 桌面]# chmod 4750 /test01/
	[root@room1pc32 桌面]# ls -ld /test01/
	drwsr-x---. 2 root root 6 11月 11 09:26 /test01/