前言
作为一个多用户,多任务的服务器操作系统,日常生产环境中linux提供了严格的权限管理机制,主要从用户身份、文件权限对资源访问进行限制,更好的保障了日常工作中文件的安全性。
一、用户和组账号概述
1.Linux基于用户身份对资源访问进行控制
●用户帐号 超级用户、普通用户、程序用户 ●组帐号 基本组(私有组)附加组(公共组) ●UID和GID UID (User lDentity,用户标识号) GID (Group IDentify,组标识号)
centos7的基本组的UID号默认为1~999 普通户GID默认为500~60000 root用户的默认值都是0
二、用户账号文件
1.用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息 ●文件位置:/etc/passwd ●每一行对应一个用户的帐号记录 head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
字段1 root:用户账号
字段2 x:密码占位符
字段3 0:用户账号
字段4 0:组账号名称
字段5 root:用户说明
字段6 root:宿主目录
字段7 /bin/bash:宿主登录shell
2.用户账号文件/etclshadow
保存用户的密码、账号有效期等信息 ●文件位置:/etc/shadow (又称影子文件) ●每一行对应一个用户的密码记录
一般情况下只有root用户读取且不能直接编辑该文件 head -2 /etc/shadow
root:$6$Nk2CMtwftulAEbcg$WY106acB4B3iVlHa..33UX0IjLUbkfwMtJK96x2DKHRmtPFmvKBhaqzjH1k8.RAjxqDEs42K8ScTLJt/JoUcK0::0:99999:7:::
字段1:用户账号
字段2:哈希算法的密码字符串,md5加密,如果出现*号或者!号,此用户不能登录账号,如果字段为空,用户无需密码登录
字段3:自1970年上次密码修改的时间
字段4:密码最短有效天数,必须经过至少多少天才能再次修改密码,0表示不限制天数
字段5:密码最大修改间隔,经过多少天必须修改密码,99999表示不限制
字段6:提前多少天警告用户密码过期时间,默认值7
字段7:在密码过期之后多少天禁用此用户
字段8:用户账号过期时间,表示用户账号过期多少天就失效,默认值为空,表示永久可用
字段:9:保留字段,暂未使用
3.添加用户账号useradd
格式:useradd[选项] 用户名 常用选项 -u:指定用户的UID号,要求该UID号码未被其他用户使用。 -d:指定用户的宿主目录位置(当与-M一起使用时,不生效)。 -e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。 -g︰指定用户的基本组名(或使用GID号)。 -G:指定用户的附加组名(或使用GID号)。 -M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。 -s:指定用户的登录Shell。
useradd -d /admin -g wheel -G root admin 创建新用户admin,指定新用户的基本组为wheel 指定附加组为root useradd -e 2020-08-10 -s /sbin/nologin san 设置用户账号过期时间
4.设置/更改用户口令passwd
格式:passwd[选项]用户名 常用选项 -d:清空指定用户的密码,仅使用用户名即可登录系统。 -I︰锁定用户账户。 -S:查看用户账户的状态(是否被锁定)。 -u:解锁用户账户 passwd lisi
5.修改用户账号的属性usermod
格式:usermod[选项]户名 常用选项 -l:更改用户账号的登录名称(Login Name)。 -L:锁定用户账户。 -U:解锁用户账户
以下选项与useradd命令中的含义相同 -u、-d、-e、-g、-G、-S -u:修改用户的UID号 -d:修改用户的宿主目录位置。 -e:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。 -g:修改用户的基本组名(或使用GID号) -G:修改用户的附加组名(或使用GID号) -s:指定用户的登录Shell。
usermod -L san 锁定账号san usermod -U san解锁账号san
6.删除用户账号userdel
格式:userdel [-r]用户名 ●添加-r选项时,表示连用户的宿主目录一并删除 useradd sss创建用户sss userdel -r sss 连sss的宿主目录一起删除
7.用户账号的初始配置文件
文件来源 ●新建用户帐号时,从/etc/skel目录中复制而来主要的用户初始配置文件 .~/.bash_profile ~l.bashrc .~l.bash_logout
三、组账号文件
与用户帐号文件相类似 /etc/group:保存组帐号基本信息 etc/gshadow:保存组帐号的密码信息
root:x:0:xiaoming
字段1:组账号名称
字段2:占位符“x”
字段3:组账号的GID
字段4:组账号成员
当需要查询的组作为基本组的时候不显示它的基本组的成员,只会显示作为附加组的成员
1.添加组账号groupadd
格式:groupadd [-g GID]组账号名 groupadd -g 1200 market 添加组账号market ,-g:指定GID号 1200
2.添加删除组成员gpasswd
●设置组帐号密码(极少用)、 格式:gpasswd[选项].组帐号名 常用选项 -a:向组内添加一个用户 -d:从组内删除一个用户成员 -M:定义组成员列表,以逗号分隔 gpasswd -M xiaohong,xiaoli market 将用户xiaoming,xiaohong 添加到组账号market中
3.删除组账号groupdel
格式:groupdel 组帐号名
四.查询账号信息
1.groups查询用户所属的组
格式:groups[用户名] 查询用户身份标识 id[用户名] groups xiaohong 查询xiaohong的所属的组
2.finger查询用户帐号的详细信息
格式:finger[用户名] w、 who、users命令 查询已登录到主机的用户信息 finger xiaohong 可以查询到xiaohong的登录方式 登录日期等信息 w 可以查看用户登录的ip地址 缓存时间等信息
3.文件/目录的权限和归属
访问权限 ●读取r:允许查看文件内容、显示目录列表 ●写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 ●可执行x:允许运行程序、切换目录 归属(所有权) ●属主:拥有该文件或目录的用户帐号 ●属组:拥有该文件或目录的组帐号
4.查看目录/文件的权限和归属
格式:ls -l 文件名/目录名 读取r:允许查看文件内容、显示目录列表 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行x:允许运行程序、切换目录
-rw-r--r--. 1 root root 2438 8月 8 20:51 /etc/passwd
-rw-r--r--:文件类型 文件权限
root root 属主 属组
5.设置文件或目录权限chmod
1、格式:hmod [ugoa…] [±=] [rwx] 文件或目录 u:属主, g:属组 o:其他用户 a:所有用户 +“代表增加相应权限,”-"代表减少相应权限, "="代表仅设置对应的权限。 "rwx"分别表示读、写、运行权限 2、chmod nnn 文件或目录
-R:递归修改指定目录下所有子目录及文件的权限 chmod -R 644 test 修改 test目录下的文件都为644
6.设置文件和目录的归属chown
chown属主文件或目录 chown :属组文件或目录c hown属主:属组文件或目录 常用选项 ●-R:递归修改指定目录下所有文件、子目录的归属
7.权限掩码umask
umask作用 ●控制新建的文件或者目录的权限 ●默认权限去除umask的权限为新建的文件或者目录的权限 umask设置: umask 022 umask查看: umask
将umask设为022,新建目录或者文件,再查看权限
总结
Linux用户账号分为超级用户、程序用户和普通用户。 passwd和 shadow文件保存了用户的基本信息及密码。 useradd、passwd、usermod和 userdel命令可以对用户账号进行管理。 groupadd、 gpasswd、groupdel命令可以管理组账号。 chmod命令可以设置文件和目录的访问权限 chown命令可以设置文件和目录的属主、属组。 umask就是默认指定目前用户在新建文件或目录时的权限默认值。
|