Linux用户与权限管理
一 用户账户和组账号概述
1.1 用户账户概述
超级用户
root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。
普通用户
普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户
在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin,daemon,ftp,mail等。
匿名用户
Windows中的匿名用户时guest,Linux系统中匿名用户是nobody。
用户账户文件
/etc/passwd:用于保存用户名称,宿主目录,登录Shell等基本信息
/etc/shadow:用于保存用户的密码,账号有效期等信息
第一字段(root):用户账号名称
第二字段:使用MD5加密的密码字串信息,当为“*”或者“!!”时表示此用户不能登录到信息,若该字段内容为空,则该用户无需密码即可正常登陆系统
第三字段:上次修改密码的时间,表示从1970年1月1日起到最近一次修改密码时间隔的天数
第四字段(0):密码的最短有效天数。自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0,表示不进行限制。
第五字段(99999):密码的最长有效天数,自本次修改后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。
第六字段(7):提前多少天警告用户口令将过期,默认值为7
第七字段:在密码过期后多少天内禁用此用户
第八字段:账号失效时间,此字段制定了用户作废的天数(从1970年1月1日算起),默认值为空,表示账号永久可用
第九字段:保留字段,目前没有特定用途
1.2 组账号概述
私有组(基本组)
随着用户的建立而建立,与用户同名
共有组(附加组)
直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。
UID号
root用户:固定值UID=0
程序用户:UID 1—999
普通用户:UID 1000–65535
GID号
Group IDentify,组标识号
组账号文件
存放位置
/etc/group
/etc/gshadow
二 用户账号和组账号管理
2.1 用户账号管理
切换用户:su 用户,保持路径不变
su - 用户,切换到当前用户的家目录
查看当前可用用户:
grep “bash$” /etc/passwd
2.1.1 useradd命令
参数 | 释义 |
---|---|
-u | 指定用户的UID号,要求UID号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与 -M 一起使用时,不生效) |
-e | 指定用户的账户失效时间,可以使用YYYY-MM-DD的日期格式 |
-g | 指示基本组 |
-G | 指示附加组 |
-M | 不建立宿主目录,即使/etc/login.defs系统配置中已设置要建立宿主目录 |
-s | 指定用户登录后使用的shell *程序用户通常指定为/sbin/nologin |
2.1.2 passwd命令-设置/更改用户口令
参数 | 释义 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户 |
-S | 查看用户账户是否被锁定 |
-u | 解锁用户账户 |
2.1.3 usermod命令–修改用户账号的属性
参数 | 释义 |
---|---|
-l | 更改用户账号的登录名称(Login Name) |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可以使用YYYY-MM-DD的日期格式 |
-s | 指定用户的登录shell |
2.1.4 userdel命令–删除用户账号
参数 | 释义 |
---|---|
-f | 强制执行一些操作,force |
-r | 删除用户的同时删除家目录和邮件存储目录 |
2.2 组账号管理
2.2.1 groupadd命令 --添加组账号
groupadd [-g GID] 组账号名
例:groupadd -g 1000 market
2.2.2 gpasswd命令 --添加删除组成员
参数 | 释义 | 示例 |
---|---|---|
-a | 向组内添加一个用户hanxin | gpasswd -a hanxin |
-d | 从组中删除一个用户成员hanxin | gpasswd -d hanxin |
-M | 定义组成员列表,以逗号分隔 | 添加多个用户:gpasswd -M a,b,c,d |
2.2.3 groupdel命令–删除组账号
groupdel 组账号名
例:groupdel market
三 查询账号信息
3.1 id命令:id [用户名]
查看指定用户账号的UID,GID等表示信息
3.2 groups命令:查询用户账号所属的组
groups [用户名]
3.3 finger命令
查询指定的账号的登录属性等详细信息,包括登录名称,完整名称,宿主目录,登录shell等。
3.4 w命令
查询当前主机中用户登录的情况,列出登录账号名称,所在终端,登录时间,来源地点等信息
四 文件/目录的权限和归属
4.1 访问权限和归属
访问权限:
读取r:允许查看文件内容,显示目录列表
写入w:允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行x:允许运行程序,切换目录
4.2 归属
属主:
拥有该文件或目录的用户账号
属组:
拥有该文件或目录的组账号
4.3 设置文件/目录的权限和归属
chmod命令–设置文件和目录权限
chown命令–设置文件和目录的归属
4.4 权限掩码umask
默认权限去除umask的权限就为新建的文件或者目录的权限
例:执行“umask 022”,代表group和other被拿掉了权限“2”,也就是被拿掉了写的权限
-R 递归修改指定目录下所有文件,子目录的归属