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

用户、组、文件权限属性

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)
M25_ymdM25_ymd
上一篇 2017-07-29
下一篇 2017-07-29

相关推荐

  • rpm软件包管理

    一:二进制应用程序组成部分 二进制文件(which command)、库文件(ldd `which command`)、配置文件(.conf)、帮助文件(.README)等 二:rpm包文件的组成 rpm文件、rpm元数据(如名称、依赖性关系等)、安装或卸载时运行的脚本 三:rpm包数据库: 1.组成部分(通过 ls /var/lib/rpm 来查…

    2017-08-13
  • inode的理解

    一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的&q…

    Linux干货 2017-01-16
  • 第一篇

     新的征程又开始了,努力吧!

    Linux干货 2016-12-26
  • 入门——计算机基础简介

    一、计算机系统 计算机系统:由硬件(Hardware)系统和软件(Software)系统俩大部分组成 二、计算机硬件 计算机(computer):是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速的处理,然后把处理结果输出的现代化电子设备。 计算机硬件组成部分 冯.诺依曼体系结构: 1946年数学家冯.诺依曼提出运算器、控制器、存储器、…

    2018-03-27
  • Linux的用户,组及文件权限管理

    Linux用户与组的创建,删除,属性修改,文件权限管理

    Linux干货 2018-02-24
  • 用PHP编写Hadoop的MapReduce程序

    Hadoop流 虽然Hadoop是用java写的,但是Hadoop提供了Hadoop流,Hadoop流提供一个API, 允许用户使用任何语言编写map函数和reduce函数.Hadoop流动关键是,它使用UNIX标准流作为程序与Hadoop之间的接口。因此,任何程序只要可以从标准输入流中读取数据,并且可以把数据写入标准输出流中,那么就可以通过Hadoop流使…

    Linux干货 2015-04-13