用户组和权限管理

一.用户管理linux

1.userdel [option]...logincentos

  -r:删除用户家目录bash

实例:ide

删除gentoo帐户,并删除家目录ui

[root@localhost home]# ls
gentoo  wangcai  zhang  zhang1  zhang2
[root@localhost home]# userdel -r gentoo
[root@localhost home]# ls
wangcai  zhang  zhang1  zhang2

2.id[option]...[user]centos7

   -u:UIDblog

   -g:GID继承

   -G:GROUPS递归

   -n:NAMErem

实例:

(1)显示zhang2的附加组

[root@localhost testdir]# id -Gn zhang3   -n显示名字
zhang3 zhang2

3.su

  su username:非登录式切换,不会读取目标用户的配置文件,不改变当前的工做目录

  su - username:登录式切换,会读取目标用户的配置文件,切换至家目录,彻底切换

 换身份执行命令:

  su [-] username -c 'COMMAND'

  选项:

    -| --login   

    su -| username 至关于su -username

4.chage:用于密码实效管理,该是用来修改账号和密码的有效期限

   chage [option]...login

    选项;

    -d:指定密码的最后修改日期

    -E:密码到期日期,过了这天,次帐户将不可用

    -I:密码过时后,锁定帐号的天数

    -l:列出用户以及密码的有效期

    -M:密码保持 的最大天数

    -W:密码过时前,提早收到的警告信息的天数

实例:

(1)下一次登录强制重设密码

chage -d 0 tom

5. groupadd 建立一个新的工做组

  groupadd [option]...group_name 

   -g:指定组id号

   -r:建立系统组.centos<500

            centos<1000

6.groupmod 组属性的修改

 groupmod[option]...group

 选项:

  -n:新名字

  -g:新的GID

实例:

(1)修改zhang3的组名和GID

[root@localhost testdir]# groupmod -n tom zhang3 -g 666

7.groupdel 组删除

groupdel group

8.gpasswd    

 gpasswd [optiom]group

 选项:

  -a user:将user添加到指定组

  -d user:从指定组中移除用户user

  -A user1,user2...:设置有管理权限的用户列表  

实例:

(1)把user1设为sales组管理员

[root@localhost ~]# gpasswd -A user1 sales

(2)把user2从sales组里删除

[root@localhost ~]# gpasswd -d user1 sales
Removing user user1 from group sales

9.groupmems更改和修改组成员

 group [options][action]

  选项:

   -g:更改成指定组(root)

 action:

   -a:指定用户加入组

   -d:从组中删除用户

   -p: 从组中清除全部成员

   -l :显示组成员列表

实例:

(1)把zhang3用户加到zhang4组里

[root@localhost testdir]# usermod -aG zhang4 zhang3

或[root@localhost testdir]# groupmems -g zhang4  -a zhang3 (zhang3用户是G或g选项后面跟的zhang4组的成员)

 或[root@localhost testdir]#gpasswd -a zhang3 zhang4

用groupmems -lg zhang4 查看组成员

(2)查看zhang4组的成员

[root@localhost testdir]# groupmems -l -g zhang4
zhang3

二.文件权限

1.chown 修改文件的属主和属组

 chown[OPTION]... [OWNER][:[GROUP]] FILE...

  用法:

   chown[-R][用户名][文件或目录]

   chown[-R][用户名:组名][文件或目录]

   chown[-R][:组名][文件或目录]

   chown[-R][用户名:][文件或目录]

   chown [options]--refrence=refile file... file的权限和refile同样

2.chgrp 更改属组

   chgrp[option]...group file

   chgrp[option]... refrence=refile file... 

   选项:

    -R:递归

实例:

(1)将bb文件的属主和属组改成user1和sales  

[root@localhost testdir]# ll bb
-rw-r--r--. 1 root root 0 Aug  3 10:31 bb
[root@localhost testdir]# chown user1:sales bb
[root@localhost testdir]# ll bb
-rw-r--r--. 1 user1 sales 0 Aug  3 10:31 bb

(2)将bb的属组改成user1

[root@localhost testdir]# chgrp user1 bb
[root@localhost testdir]# ll bb
-rw-r--r--. 1 user1 user1 0 Aug  3 10:31 bb

3.chmod 修改文件权限

 chmod[option]...mode files

  mode:

  修改一类用户的全部权限:

   u=  g= 0= ug= a= u= g=

  修改一类用户某位或某些权限

   u+ u-g+ g-o+ o- a+ a- + -

  chmod[OPTION]... --reference=RFILE FILE...参考RFILE文件的权限,将FILE的修改成同RFILE;

实例:

(1)给aa文件添加执行权限

[root@localhost testdir]# chmod u+x aa
[root@localhost testdir]# ll aa
-rwxr--r--. 1 user2 user2 0 Aug  3 10:31 aa

(2) 给aa的属主分配读、写、执行的权限,给aa的所在组分配读、执行的权限,给其余用户分配执行的权限

[root@localhost testdir]# chmod 751 aa
[root@localhost testdir]# ll aa
-rwxr-x--x. 1 user2 user2 0 Aug  3 10:31 aa
或
[root@localhost testdir]# chmod u=rwx,g=rx,o=x aa
[root@localhost testdir]# ll aa
-rwxr-x--x. 1 user2 user2 0 Aug  3 10:31 aa

4.umask

 umask值 能够用来保留在建立文件权限

 新建FILE权限: 666-umask

        若是所得结果某位存在执行(奇数)权限,则将其权限+1

 新建DIR权限: 777-umask

 非特权用户umask是002

 root的umask是022

 umask: 查看

 umask#: 设定

 umask002

 umask–S 模式方式显示

 umask–p 输出可被调用

 全局设置:/etc/bashrc用户设置:~/.bashrc

三.linux文件系统上的特殊权限

SUID, SGID, Sticky

1.suid  

 suid属性只能用在二进制可执行文件上,对目录无效

 权限设定:

 chmod u+s file..

 chmod u-s file..

实例:

(1)在zhang用户上查看/etc/shadow

[root@centos7 testdir]# ll /bin/cat
-rwxr-xr-x. 1 root root 54048 Nov 20  2015 /bin/cat
[root@centos7 testdir]# su - zhang
Last login: Wed Aug  3 19:28:16 CST 2016 on pts/0
[zhang@centos7 ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[zhang@centos7 ~]$ su 
Password: 
[root@centos7 zhang]# chmod u+s /bin/cat
[root@centos7 zhang]# su - zhang
Last login: Wed Aug  3 19:30:27 CST 2016 on pts/0
[zhang@centos7 ~]$ cat /etc/shadow
root:$6$aHlQXG.A$G85xT17R4KPL.DiCTFaeE3j7Ua0eOoVZqSUM7exQBU/Q4QM04Vw7fsnnJBzrwTPnW90eLu3MXpHYMuiMkh4cK1:17008:0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
adm:*:16659:0:99999:7:::
lp:*:16659:0:99999:7:::
......

2.sgid 

  chmod g+s file

  chmod g-s file

  sgid 应用在目录上时,该目录中所创建的文件或子目录的所属组都是该目录的所属组

  sgid应用在可执行文件上时,其余用户在使用执行文件时就会拥有该执行文件的所属组.

3.Sticky 

  chmod o+s file

  chmod o-s  file

  sticky只能应用在有w+x权限目录上,当用户拥有sticky属性,全部该目录的文件或子目录,不管什么权限只有文件的拥有者和root用户才能作删除动做.

实例:

禁止其余用户删除有写权限的目录下的文件

[zhang@localhost testdir]$ mkdir dir
[zhang@localhost testdir]$ cd dir
[zhang@localhost dir]$ touch aa bb 
[zhang@localhost dir]$ chmod o+t /testdir/dir
[zhang@localhost dir]$ ll -d /testdir/dir
drwxrwxr-t. 2 zhang zhang 4096 Aug  3 21:36 /testdir/dir
[root@localhost dir]# su tom
[tom@localhost dir]$ rm -f /testdir/dir/aa
rm: cannot remove `/testdir/dir/aa': Permission denied

四.设置文件的特定属性(能够保护一些重要的文件,避免误操做)

chattr +i 不能删除,更名,更改

chattr+a 只能增长

lsattr 显示特定属性

五.ACL的使用

1.什么是AClL

  它主要目的是提供owner,group,others的read,write,execute权限以外的权限设置

  它主要针对如下几个项目:

  用户,用户组,

  默认属性(mask):在该目录下新建文件/目录时设置的默认权限

2.如何启动ACL

CentOS7.0默认建立的xfs和ext4文件系统有ACL功能。

CentOS7.X以前版本,默认手工建立的ext4文件系统无ACL功能,需手动增长.

(1)查看挂载参数的功能 mount

(2)手动添加ACL功能

  tune2fs –o acl/dev/sdb1

  或

  mount –o acl/dev/sdb1 /mnt

3.ACL的使用

 getfacl:取得某个文件/目录的ACL设置项目

 setfacl:设置某个目录/文件的ACL规定

 (1)setfacl用法

   setfacl [-bkRd] [{-m|-x} acl参数] file

   -m:设置acl权限

   -x:删除acl权限,不可与m合用

   -b:删除全部acl权限

   -R:递归设置acl,包括子目录都会被设置起来

   -d:设置默认acl参数,支队目录有效,在该目录新建的文件会继承目录的默认值

实例:

(1)针对特定用户zhang

[root@centos7 zhang]# cat /etc/issue > /testdir/f2
[root@centos7 zhang]# ll /testdir/f2
-rw-r--r--. 1 root root 44 Aug  4 21:11 /testdir/f2
[root@centos7 zhang]# setfacl -m u:zhang:- /testdir/f2 把zhang用户的读权限禁用掉 
[root@centos7 zhang]# su - zhang
Last login: Thu Aug  4 21:07:14 CST 2016 on pts/1
[zhang@centos7 ~]$ cat /testdir/f2
cat: /testdir/f2: Permission denied  权限不够

(2)清除设置在zhang用户的acl 权限

[root@centos7 zhang]# setfacl -b /testdir/f2
[root@centos7 zhang]# ll /testdir/f2
-rw-r--r--. 1 root root 44 Aug  4 21:11 /testdir/f2

(3)setfacl -M file.acl file|directory

 wKiom1ejU53xBC-tAAFCkuvQ_xE180.png

(4)setfacl -m d:u:wang:rx directory

 wKioL1ejU66hgY2nAAJb5Nymgwk521.png

4.getfacl 查看acl 权限l列表

getfacl file

实例:

[root@centos7 zhang]# getfacl /testdir/f2
getfacl: Removing leading '/' from absolute path names
# file: testdir/f2
# owner: root
# group: root
user::rw-
user:zhang:rw-
group::r--
mask::rw-
other::r--

5.mask

 用户或组所设置的权限必需要存在于mask的权限设置范围内才会生效,此即有效权限

实例:

 能够设置mask的权限来修改其余用户在文件上的权限

 wKiom1ejU9OQE9VWAACNZ5gXG-4975.png

6.访问控制列表

  ACL :灵活的实现 权限控制

经常使用用法

mount -o acl /directory
getfacl file |directory
setfacl -m u:wang:rwx file|directory
setfacl -Rm g:sales:rwX directory 
setfacl -M file.acl file|directory
setfacl -m g:salesgroup:rw file| directory
setfacl -m d:u:wang:rx directory 
setfacl -x u:wang file |directory
setfacl -X file.acl directory
相关文章
相关标签/搜索