码迷,mamicode.com
首页 > 其他好文 > 详细

用户组和权限管理

时间:2016-08-05 01:10:04      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:权限管理

一.用户管理

1.userdel [option]...login

  -r:删除用户家目录

实例:

删除gentoo账户,并删除家目录

[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]

   -u:UID

   -g:GID

   -G:GROUPS

   -n:NAME

实例:

(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

 技术分享

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

 技术分享

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的权限来修改其他用户在文件上的权限

 技术分享

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


本文出自 “zhang1003995416” 博客,转载请与作者联系!

用户组和权限管理

标签:权限管理

原文地址:http://1003995416.blog.51cto.com/10482168/1834532

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!