linux用户管理规范,Linux用户管理命令

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。主要组(primary group) 用户至少属于一个组,必须有一个主组和附加组(supplementary group) ,一个用户可以属于0个或多个附加组。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

一、用户管理的相关文件

在linux系统下,要想对用户和用户组进行添加、修改、删除等操作,,我们必须了解用户和组的配置文件存放的位置。若想查看这些文件存放的内容,可以使用cat命令。

/etc/passwd

功能:存放所创建的用户帐号和其相关信息

内容:用户名:密码位:UID:GID:描述位:用户主目录:SHELL

注:由于所有用户对passwd文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在了/etc/shadow的配置文件中。因此,存放密码的字符显示为x,为了保密。在passwd文件中,各字段值间用":”分隔,每个字段均代表该帐号某方面的信息。

/etc/shadow

功能:存放用户密码(一般采用加密的方式存放密码)

内容:用户名:密码位:

注:shadow所有字段都可以手动修改,但普通账户不能查看shadow文件,只要root可以读取。与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。

/etc/group

功能:存放系统组信息

格式:组名:组密码:GID:附加组成员列表:用,间隔

注:普通用户也可以附加到某个组中。组密码映射到了/etc/gshadow,显示为x,附加组成员列表可以用,间隔

/etc/gshadow

功能:存放用户组口令

格式:组名: 加密后的密码位:组管理员:附加组成员列表

注:组管理员可以用,间隔,即可以修改组密码,可以修改组成员。

/etc/skel

功能:用于存放用户的环境文件等。当添加新用户时,系统会自动复制该目录到新用户的家目录下。

二.用户及组管理命令

Linux的用户账号类型一般分为两类:超级用户:具有一切系统操作权限;普通用户:操作权限受到限制。root是系统的超级管理员,但在管理文件操作时,一般不使用root。这时,就需要创建新用户进行日常管理操作。

su

功能:切换用户

格式:#su [选项] [用户名]

参数:

su: 不加任何选项的情况下,默认为切换到root用户,不改变shell环境

su -:默认切换到root用户,并改变shell环境

注:root切换到普通用户,不需要输入密码,普通用户切换到root用户,需要输入密码。在用户登录系统时,密码是不显示的,不要认为是键盘坏了。

id

功能:显示当前用户自身的信息

格式:id [参数] 用户名

参数: id 用户名 :显示指定用户的信息

id -u 用户名 :显示指定用户的uid

id -g 用户名 : 显示指定用户的主组的gid

id -un 用户名 : 显示指定用户的名字

id -gn 用户名 : 显示指定用的的主组的组名

useradd

功能:建的新的系统用户

格式:useradd [参数]用户名

参数: -u UID : 指定 UID

-o 与-u 配合,不检查uid的唯一性

-g GID/组名 : 指定用户的主要组

-G GID/组名 : 指定用户的附加组

-c : "注释" 用户名

-d 路径 : 用户

-s /sbin/nologin : 指定用户的默认shell

-N : 使用users组做为主要组

-r : 创建系统用户

-m : 与-r 配合使用,在创建系统用户时,同时创建家目录

-M : 创建非系统用户时,不创建家目录

-D : 设置默认值,影响以下文件

注: 路径中的目录名要先存在,而基名不要存在 ,useradd的默认设置 /etc/default/useradd ,在新建用户的同时会产生一个同名的组,会在home下创建一个跟用户同名的家目录 。

passwd

功能:修改用户密码

格式:passwd [参数] [用户名]

参数:-l:锁定用户

-u :解除用户的锁定

-d :删除用户的密码

-e :使下次使用密码登录时,强制修改密码

--stdin :从标准输入接收用户密码

注:root用户可以使用passwd命令的一切功能,但是普通用户只能使用该命令修改自己的密码。

userdel

功能:删除给定的用户,以及与用户相关的文件

格式:userdel [参数] 用户名

参数:

-r : 删除用户主目录,会连同家目录和mail一起删除

注: 请不要轻易用-r参数,这个参数会删除用户的同时删除用户所有的文件和目录,如果用户目录下有重要的文件,在删除前请备份。

usermod

功能:修改用户信息

格式:usermod [参数] 用户名

参数:-u UID 用户名 修改指定用户的uid

-g GID/组名 : 修改用户的主组(该组要先存在)

-G GID/组名[GID2/组名2……] :设置用户的附加组

-a 与-G 配置,增加用户的附加组

-s shell :修改用户的默认shell

-c '注释内容' :修改用户的注释

-d 新地址 用户名 :只修改/etc/passwd当中家目录的信息,并不会将目录迁移

-m 与-d 配合使用:修改家目录时,目录一同迁移

note: -d 与地址 一定要连在一起

-l 新名字 旧名字:修改用户的登录名

-L 用户名 :锁定用户的密码

-U 用户名 :解锁用户的密码

注:如果使用-G为用户修改附加组的话,默认情况下会覆盖原有的附加组,如果只想追加新的附加组可以使用 -aG ,其中a表示追加。

gropadd

功能:建立用户组

格式:groupadd [参数] 组名

参数:-g GID/组名:指定GID的值

-r :自动分区的组ID

注:系统自备的id数是不一样的,centos6 < 500,centos < 1000

groupdel

功能:删除用户组

格式:groupdel 组名

groupmod

功能:修改组信息

格式:groupmod [参数] 组名

参数:-n 新组名:修改组的名称

-g GID:修改组的GID

-o:强制使用指定的GID,与-g连用

gpasswd

功能:修改组密码

格式:gpasswd [参数] [用户名] [组名]

参数:gpasswd -a username groupname :将指定用户以附加组方式加入到指定组

gpasswd -d username groupname :将指定用户从指定组中删除

gpasswd -A admin1[,admin2……] groupname :设置组管理员

gpasswd -M user1,user2 groupname :设置组成员列表 (仅root执行)

gpasswd -M '' groupname : 删除组成的所有成员

gpasswd -r groupname: 清空指定组的组密码

注:管理员可以修改组密码,及修改组成员

groups

功能:查看账号属于哪个组,主组和附加组

格式:groups [用户名]

newgrp

功能:生成一个子shell,使用户临时将主要组切换到指定组

格式: newgrp 组名

注:如果当前用户本身以附加组方式存在于该组中,那么newgrp 组名,无需输入密码

groupmems

功能:允许组管理员管理其组成员,查看将该组设置为附加组的组成员

参数:

-g :指定组名

-a 用户名:往指定组中增加成员

-d 用户名: 从指定组中删除成员

-l :列出组成员列表(不包含主组)

-p: 清空该组的所有组员

chpasswd

功能:修改用户口令,用户名和口令由用户输入的执行过程中输入

格式:#chpasswd [参数]

参数:-e 不加密存储

chown

功能:修改文件的owner

格式:chown 用户名 文件/目录名

参数:-R :递归同时修改目录下的子文件子目录

--reference 文件1 文件2 :将文件1的owner设置给文件2

chown owner.group 或 owner:group 文件名:可以同时修改文件的owner和group

注:修改文件的owner和group仅root可以修改

chgrp

功能:修改文件的group

格式:chgrp 组名 文件/目录名

参数:

-R :递归

--reference :文件1 文件2 将文件1的group设置给文件2

注:owner可以修改文件的属于组,但owner一定要属于目标组

三.用户安全管理

对于不同用户对权限的设置,超级用户可以不受文件访问权限的限制,而普通用户受具体文件访问权限的限制,若普通用户想执行对某个文件的操作,就需要修改这个用户对权限的设置。

普通权限

rwxrwxrwx:

左三位:定义user(owner)的权限

中三位:定义group的权限

右三位:定义other的权限

rwx权限作用在文件上:

r:表示可以读取该文件的内容

w:表示可以修改该文件的内容

x:无作用

rw:表示可以读写该文件

rx:表示可以读并能执行该文件

wx:权限等同于仅w权限

rwx权限作用在目录上:

r:可以短列出目录的内容(子文件,子目录名)

w:无作用

x:可以进入该目录

rw:权限等同于仅r

rx:表示可以长列出,可以进入

wx:可以创建及删除文件或目录。

rwx:可以列出可以创建删除可以进入。

注:当用户访问一个文件时,首先判断当前用户是否为该文件的所属人owner,如果是owner,则应用owner位的权限;如果不是owner,则判断该用户的所属组当中,是否有一个组与该文件的group相同,如果有,则应用group位的权限;如果都不是,则应用other位。以上权限组合可以用字母和八进制数字表示:r:4,w:2,x:1.

特殊权限

安全上下文:

进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源。

suid:当对于一个可执行的二进制文件作用了suid之后,任何人在执行该文件时,临时拥有其所有人的权限

权限设定:chmod u+s file.....

chmod u-s file......

sgid:当对于一个可执行的二进制文件作用了sgid之后,任何人在执行该文件时,临时拥有其所有组的权限;当对于一个目录作用了sgid权限之后,任何人在该目录下所创建的文件的所属组,均与该目录的所属组相同

权限设定:chmod g+s file.....

chmod g-s file......

sticky: 对于一个目录作用了sticky权限,该目录下的文件仅其所属人和目录的所属人及root可以删除。

权限设定:chmod o+t DIR.....

chmod o-t DIR......

chmod

功能:修改文件访问权限

格式:chmod [参数]

参数:

-v:显示详细说明

-c:与-v相似,但只有在文件权限发生改变时才显示详细说明

-R:递归改变目录的权限

-f:不显示拥有者的详细信息

注:只有root和文件所属人有权执行chmod文件

umask

功能:设置权限掩码(决定新建文件的权限)

格式:umask 权限值

参数:umask:查询umask

umask xxx :设置umask

注:超级用户默认为022,普通用户默认为002。新文件和新目录的umask基准值不一样。

getent passwd [user_name]:只显示某个user的信息

四、权限管理

acl

在Linux中,acl主要负责文件权限管理,centos7 默认支持acl,centos6及之前的版本,操作系统安装时所创建的文件系统默认支持acl,而操作安装之后使用mkfs格式化的文件系统默认未开启acl,需要手工开启,方法如下:

1.查看分区ACL权限是否开启

tune2fs -o acl /dev/sda5

2.开启acl

mount -o acl /dev/sda5 /app

acl需要getfacl和setfacl来进行acl权限的获取和设置。

setfacl:

-m : 赋予文件相关的acl参数,不能与-x同时设置

-x : 删除文件相关的acl参数,不能与-m同用

-b :删除所有的acl参数

-k :删除默认的acl参数

-R :递归设置acl参数

--restore : 恢复acl参数

getfacl :

: 获取文件的acl的详细权限

注:acl权限有优先级,判断顺序为:owner > acl user > group > other

Chattr

功能:管理文件的隐藏权限属性

格式:chattr [参数] 操作符 属性值 文件或目录

参数:

+a 表示文件不能删除数据,不能覆盖数据,只能追加数据。

+i 表示文件不能删除,不能覆盖,不能追加任何数据

注:只有root可以设置这个属性,参数中的“+”表示为目标文件增加一个隐藏属性。

lsattr

功能:查看attr权限,显示特定属性

格式:lsattr [参数] [文件名]

参数:-R:查看目录所有内容的属性,包括子目录中的内容

五、练习

1、创建用户liubei,guanyu,zhangfei,要求三用户同属于一个附加组shuguo

步骤:1.先分别创建用户liubeu,guanyu,zhangfeu,

2.使用gpasswd命令把用户归属于一个组shuguo

3.使用命令id查看

[root@centos 7 ~]# useradd liubei

[root@centos 7 ~]# useradd guanyu

[root@centos 7 ~]# useradd zhangfei

[root@centos 7 ~]# gpasswd -a liubei,guanyu,zhangfei shuguo

[root@centos 7 ~]# id liubei

[root@centos 7 ~]# id guanyu

[root@centos 7 ~]# id zhangfei

df61b61285ddb289a8646b411e8842ad.png

2、复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限

步骤:1.先使用cd命令进到tmp目录下

2.使用cp命令复制文件

3.使用chown修改所有者为wangcai

4.使用chgrp命令修改所属组为sysadmins

5.使用chmod命令修改权限

6.使用ll命令查看

[root@centos 7 tmp]# cd /var/tmp

[root@centos 7 tmp]# cp /etc/fstab /var/tmp

[root@centos 7 tmp]# chown wangcai fstab

[root@centos 7 tmp]# chgrp sysadmins fstab

[root@centos 7 tmp]# chmod 660 fstab

[root@centos 7 tmp]# ll

322243ed7642acb6b2dc373581a7a1d4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值