用户、组、权限 等相关命令

用户、组、文件权限属性

1、用户和组的配置文件

在Linux中用户和组的配置文件主要为:
/etc/passwd  :存放用户及其属性的信息(名称、GID、UID)
/etc/group   :存放组及其属性信息
/etc/shadow  :存放用户密码及其相关属性
/etc/gshadow :存放组密码及其相关属性

(1)、/etc/passwd的格式

root:x:0:0:root:/root:/bin/bash 
分别表示为:用户名 :密码 : UID : GID : 描述信息 : 家目录 : shell类型

(2)、/etc/shadow的格式

root::17361:0:99999:7:::
分别表示为:用户名 : 密码 : 距1970年天数 : 密码最短有效期 : 最长有效期 : 提前通知天数 : 过期天数 : 账户有效期
其中密码部分为:
$6$1C6dXZDTp.Kccbji$8K.gFoDfNtFONEoWV5I9s87Fun6kw2NSlQqIEsrNblzrfSydSXQ9We3MW/6Ow1KPuI4xtZjPDffOY1j3Ccg9x.
"6":表示其算法为sha512
"1C6dXZDTp.Kccbji"表示系统随机生成的随机数用于密码中增加密码的安全性
最后一部分为:加密生成的最终的密码     

在密码最前面如有"!"则代表账户被锁定,不能登录
eg:tcpdump:!!:17361::::::

(3)、/etc/groupd的格式

root:x:0:分别表示为:用户名 : 组密码(X表示) : GID : 附加组

2、用户和组的相关命令

(1)useradd 添加用户

useradd  [options]  username
     -u UID :指定用户的UID
     -g GID :指定用户的GID
     -o     :检查ID的唯一性
     -c     :用户的注释信息
     -s     :shell类型
     -G group:为用户添加附加组(组需事先存在)
     -r     :添加系统组
                        CentOS 6  系统ID:0-499 ,其他用户ID:500-60000
                        CentOS 7  系统ID:0-999 ,其他用户ID:1000-60000
创建用户时的默认设置文件:/etc/default/useradd    
当用户被创建时用户的家目录会自动生成与/etc/skel目录下相同的文件
/etc/login.defs目录下为用户登录时的属性默认设置,可通过更改文件设定来改变包括用户有效期、UID、GID以及加密算法等在内的配置信息

(2)usermod 用户属性修改

usermod [options] username 
     -u UID :修改新的UID
     -g group :新的基本组
     -aG group :增加新的附加组至用户
     -md home :创建新的家目录,并移动原家目录数据至新家目录
     -s shell :更改shell
     -c "comment" :修改注释信息
     -l login_name:更改登录名称
     -L username :锁定指定用户,在/etc/shadow 密码列增加"!"
     -U username :解锁指定用户
     -e YY-MM-DD :指定用户账户过期时间

(3)userdel 删除指定用户

userdel [options] username
     -r :将指定用户信息全部删除
     -f :强制删除

批量创建用户及更改口令

1、批量创建用户
     需要事先创建和/etc/passwd格式一样的文件,如user.txt
     命令newusers  user.txt 可以批量创建user.txt内的用户,但创建后用户家目录下会缺少一些文件,可以
     去/etc/skel目录下复制过来使用。
2、批量更改口令
     先创建文本passwd.txt内容格式如:username:passwd 
     执行命令cat passwd | chpasswd 将文本中的用户与密码设定成功

(4)groupadd、groupmod、groupdel 创建组、修改组、删除组

group [options] groupname
     -g GID :设定组ID
     -r     :创建系统组
                       CentOS 6  系统ID:0-499 ,其他用户ID:500-60000
                       CentOS 7  系统ID:0-999 ,其他用户ID:1000-60000
groupmod [options] group 
     -n groupname :更改新的组名
     -g GID       :新的GID
groupdel :删除组,若删除的组为其他组的主组则不能删除。

(5)passwd 修改指定用户的密码

passwd [options] username 
     -l :锁定指定用户
     -u :解锁指定用户
     -e :用户下次登录强制修改密码
     --stdin :接受标准输入

(6)gpasswd 更改组密码

gpasswd [options] group 
     -a username:将用户添加到指定的组
     -d username:从指定的组中将用户删除
     -A username:设置有管理权限的列表

(7)groupmems

groupmems [options] 
     -g group :指定要操作的组
     -a username :指定用户加入组
     -d username :从组中删除用户
     -p :清空所有成员
     -l :显示组列表

3、文件权限属性

再打开文件和目录时显示其详细信息如下:

(1)文件属性信息

-rw-r--r--. 1 root mage 1738 Jul 19 19:18 /etc/passwd
其中:
第一位是文件的类型:
                     - :普通文件
                     -d:目录
                     -c:字符设备
                     -b:块设备
                     -l:连接文件
                     -s:套接字
                     -p:管道文件
rw-r--r--为文件的权限:r(读)、w(写)、x(执行)、-(无)
                     前三位:为文件所属主的权限        
                     中三位:为文件所属组的权限
                     后三位:为文件其他人的权限
 1 root mage         
                     1:为其链接数
                     root:为其属主
                     mage:为其属组
1738 Jul 19 19:18    
                     1738:为其文件的大小,单位默认为K
                     Jul 19 19:18 :为其访问时间
/etc/passwd          :为其文件路径

(2)属性更改

chown 设置文件的属主、属组
     chown [OPTION]... [OWNER][:[GROUP]] FILE...
     chown user1:group1 file  更改文件file的属主以及属组
     chown user1:       file  只更改文件file的属主
     chown      :group1 file  只更改文件的属组
     chown -R                 递归更改
chmod 设置文件的权限属性
     chmod [WHO] [OPTION]... MODE[,MODE]... FILE...
     [who]   : user、group、other
     [option]: + 增加 
               - 去除
               = 赋值为
               a 所有(all)
     [mode]  : r、w、x、X(作用在目录上,配合-R使用会将目录下的除文件以
                          外的目录加上x执行权限)
eg : chmod u+rw  file 将file文件加上rw权限
*注意:Linux系统对于目录中的文件来说,文件能否被用户删除与文件本身的权限无
       关,而与文件的父目录有关,当用户访问父目录具有w(写)权限时才能够将
       文件删除

(3)特殊权限 suid、sgid、sticky

suid (作用在可执行的二进制文件上): 访问者会继承文件所有者的权限
     (用s表示)
sgid (作用在可执行的二进制文件上): 访问者会继承文件所属组的权限
     (用s表示)
     (作用在目录上)              : 目录下新建的文件的所属组会继承目录的
                                   所属组(同属一个组的成员可以新建、
                                   互相更改及删除文件) 
sticky (作用在目录上)            : 在一个公共的目录上每个人都可以创建、
       (用t表示)                   删除自己文件,但不能删除别人的文
                                   件,只有所有者能够删除

eg : 
[root@Centos6 /app]#chmod u+s passwd
-rwSr-xr-x. 1 root root  1664 Jul 19 02:57 passwd  为passwd文件加上suid权限  这里说明:若文件权限最初无x(执行权限)则为S,反之为s
[root@Centos6 /app]#chmod g+s passwd
-rw-r-sr-x. 1 root root  1664 Jul 19 02:57 passwd  为passwd文件加上sgid权限
[root@Centos6 /app]#chmod o+t passwd
-rw-r-xr-t. 1 root root  1664 Jul 19 02:57 passwd  为passwd文件加上sticky权限

(4)访问控制列表(ACL)

在现实的生产中我们通过更改权限的命令只能设定群体的用户,但是我们却想要特定的文件只能某个用户访问或者拒绝其访问这时就需要ACL来实现除了所有者、所属组和其他人,可以对更多的特定用户设置权限了

setfacl (set file acl) 设定文件ACL权限
     -m 设定权限
     -x 取消权限
     -R 递归操作
     -k 清空默认acl
     -b 彻底删除acl权限,包括mask
eg: 
     setfacl -m u:user:r  file  设定文件file对user只有r(读)权限
     setfacl -m u:user:rx dir   设定目录对于user来说,在目录下新建文
                                件时默认具有rx权限
     setfacl -m g:group:w dir   设定目录dir对group有写权限     
[root@Centos6 /app]#setfacl -m u:ymd:rx passwd
-rw-r-xr-x+ 1 root root  1664 Jul 19 02:57 passwd  设定文件ACL权限后有"+" 为ymd用户对passwd文件设定rx权限
[root@Centos6 /app]#getfacl passwd      getfacl 查看设定的权限
# file: passwd
# owner: root
# group: root
user::rw-        所属主
user:ymd:r-x     自定义用户
group::r-x       所属、其表现出来的权限实际为mask的权限
mask::r-x        限制最高权限
other::r-x       其他人

备份与恢复ACL
getfacl -R /file > backup.txt  将文件file备份到backup.txt
setfacl --restore backup.txt   通过backup.txt恢复acl

原创文章,作者:M25_ymd,如若转载,请注明出处:http://www.178linux.com/83133

(0)
上一篇 2017-07-29 16:11
下一篇 2017-07-29 17:01

相关推荐

  • TCP协议详解

    TCP协议详解。     I,TCP数据段报文解释 1,tcp数据段头部20(固定)+40(可变)字节构成,此数据由报头偏移位构成,计算单位为四个字节 表示TCP报文段的首部长度,共4位,由于TCP首部包含一 个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指 出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。…

    Linux干货 2017-06-26
  • 新的篇章

    第一天,linux,努力,奋斗!

    Linux干货 2017-07-11
  • Week6 Vim编辑器使用指南及练习

    vim编辑器 vim模式: 模式转换.png 编辑–>输入: i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,…

    Linux干货 2017-02-17
  • 0804正则表达式作业

    用正则表达式表示IP地址         首先来分析一下,制IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(1…

    Linux干货 2016-08-10
  • Varnish基础进阶

    Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人、朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带…

    Linux干货 2016-04-19
  • 程序包的编译安装

    程序包的编译安装     程序包的编译安装是比较重要的内容,在之后的网络知识以及服务的配置等学习方面也发挥着重要作用,是我们的必备技能。 一、杂项知识整理 1、which –skip-alias:跳过别名,直接查看原命令 [root@localhost ~]# which –…

    Linux干货 2016-08-24