标签:修改 日期 block 查看 管理 列表 开始 add 创建
Linux
是一个多用户的操作系统,引入用户,可以更加方便管理Linux
服务器系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份器运行,用户可以限制某些进程对特定资源的权限控制
Linux
操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。
Linux
系统用户是根据用户ID
来识别的,默认ID
长度为32
位,从默认ID
编号从0
开始,但是为了和老式系统兼容,用户ID
限制在60000
以下,Linux
用户分总共分为三种,分别如下
root
,ID
为0ID
从1到499ID
为500以上
Linux
系统中的每个文件或者文件夹,都有一个所属用户及所属组使用
id
命令可以显示当前用户的信息,使用passwd
命令可以修改当前用户密码。Linux
操作系统用户的特点如下
UserID
,操作系统实际读取的是UID
,而非用户名;31
个附属组;GroupID
;Shell
环境
Linux
用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下
/etc/passwd
:保存用户信息/etc/shadow
:保存用户密码(以加密形式保存)/etc/group
:保存组信息/etc/login.defs
:用户属性限制,密码过期时间,密码最大长度等限制/etc/default/useradd
:显示或更改默认的useradd
配置文件
1
|
useradd usertest # 创建用户usertest
|
创建新用户,可以使用命令
useradd
,执行命令即可创建新用户同时会创建一个同名的组,默认该用户属于该用户组
创建用户,会根据如下步骤进行操作
/etc/passwd
文件中添加用户信息passwd
命令创建密码,密码会被加密保存在/etc/shdaow
中/home/usertest
,创建目录操作应操作系统而异/etc/skel
中的.bash
开头的文件复制至用户家目录/etc/group
配置文件中其他命令可选参数如下所示
1
2
3
|
-d # 指定新用户的主目录
-G # 指定新用户的组列表
-s # 新用户所使用的shell环境
|
1
2
|
useradd usertest -s /bin/bash -d /home/usertest
|
1
2
3
|
userdel # 保留用户的家目录
userdel –r usertest # 删除用户及用户家目录,用户login系统无法删除
userdel –rf usertest # 强制删除用户及该用户家目录,不论是否login系统
|
当一个用户创建之后,我们可以通过
usermod
命令来修改用户及组的属性
linux
下命令选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
|
1
2
|
groups username
|
1
2
|
usermod usertest -G old_normal
|
1
2
|
usermod usertest -a -G other_normal
|
1
2
|
cat /etc/group | grep usertest
|
1
|
usermod usertest -d /home/user -s /bin/sh
|
1
2
|
usermod -l new old
|
1
2
3
4
|
usermod -L usertest;
|
所有的
Linux
或者Windows
系统都有组的概念,通过组可以更加方便的管理用户组的概念应用于各行行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在
Linux
系统,同样可以创建用户,并用组的概念对其管理Linux组有如下特点
ID
/etc/group
中31
个附属组
1
|
groupadd normal # 创建normal组
|
1
|
groupadd -g 1000 normal # 创建ID为1000的分组
|
常见参数
1
2
3
4
|
-r # 系统账户
-f # 如果指定的组已经存在,则退出
-g # 指定当前组id
-n --new --old # 修改组名
|
1
2
|
groupmod -n old_normal normal
|
1
2
|
groupmod -g 1001 old_normal
|
设置好了用户和组,那么接下来就可以对其进行权限控制
由于linux下处处皆文件,所谓权限也就是对文件的读、写、执行,至少这三种
当操作系统下某个进程在运行时,进程的权限,也相当于这个进程的运行用户身份权限
权限 | 文件 | 目录 |
---|---|---|
r | 读取文件 | 列出目录 |
w | 修改文件 | 修改目录内文件 |
x | 执行文件 | 进入目录 |
默认的linux的权限分为三种角色
user
、group
、other
每个文件将基于UGO三种权限进行设置
一般一个文件创建之后,谁创建该文件,默认成为该文件的所有者
1
2
|
ls -ahl
|
1
2
3
4
|
chmod g+rwx file
|
修改某个文件或目录所属用户或组
1
2
|
chown -R root file
|
1
2
3
4
|
chown -R :root file
|
linux下具备权限设置为1,反之为0,那么一个权限按照二进制位数来计算,如下所示
1
2
3
|
--x: 001 1
-wx: 011 3
rwx: 111 7
|
很清晰,对应的权限位置所代表的数字分别是:r=4,w=2,x=1
1
2
|
chmod 775 file
|
神奇的事情需要我们考虑,每次创建文件,默认都会具备一定的权限,而这个权限是如何分配而来的呢?
是通过一个叫做权限掩码的东西来维护的,这个码可以通过umask命令看到
默认系统的掩码是022
文件默认权限:666
那么创建一个文件真实的权限是:666-022=644
目录的默认权限:777
一个目录的真实权限是:777-022=755
1
|
umask -S 011
|
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
suid | 以文件的所属用户身份执行,而非执行文件的用户 | 无 |
sgid | 以文件所属组身份去执行 | 在该目录中创建任意新文件的所属组与该目录的所属组相同 |
sticky | 无 | 对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件 |
标签:修改 日期 block 查看 管理 列表 开始 add 创建
原文地址:https://www.cnblogs.com/wa1314/p/12154709.html