1、用户与权限
- 在Linux系统中,无论是本地登录系统还是远程登录系统都必须要有一个
账户
,并且不同的账户
对于不同的系统资源拥有不同的权限
。
- 用户管理包括
用户
与组
的管理。
- 在Linux系统中,可以为
每一个用户
对于不同的文件或目录指定不同的权限
,但在实际应用中,都是先对组
设置好权限,然后把不同的用户
添加到对应的组
中,这样就不需要
为每一个用户都设置权限。
- 文件或目录的
权限
如下:
权限 |
对应的字母 |
对应的数字 |
读 |
r |
4 |
写 |
w |
2 |
执行 |
x |
1 |
2、chmod命令
用于修改
用户或组对于文件或目录所拥有的权限
。
chmod +/-rwx 文件名/目录名
说明
注意
3、超级用户
- 在Linux系统的安装过程中,系统会要求我们创建一个账户用于登录,这个账户称为
标准用户
。
- 在Linux系统中有一个
root
账户,称为超级用户
。
- Linux系统中的
root
账户通常用于系统的维护和管理
,它对系统的所有资源都具有访问的权限
。
sudo命令
-
su 用户名
:表示使用另外一个用户的身份
登录。
-
sudo
命令:表示以其他身份
来执行命令,预设身份为root
。
说明
- 用户在使用
sudo
命令时,必须
输入密码,在之后的5分钟
内密码有效
,超过
期限则必须重新输入
密码。。
4、组管理
命令 |
作用 |
groupadd 组名 |
添加组 |
groupdel 组名 |
删除组 |
cat /etc/group |
确认组信息 |
chgrp -R 组名 文件名/目录名 |
递归修改文件/目录的所属组 |
说明
-
组管理
都需要通过sudo
命令来执行。
-
/etc
目录是专门用来保存系统配置信息
的目录。组信息
保存在/etc/group
文件中。
5、用户管理
命令 |
作用 |
useradd -m -g 组名 用户名 |
添加新用户 |
passwd 用户名 |
设置用户密码 |
userdel -r 用户名 |
删除用户 |
cat /etc/passwd|grep 用户名 |
确认用户信息 |
说明:
-
用户管理
都需要通过sudo
命令来执行。
-
-m
:表示建立用户的家目录
。创建用户时如果忘记
添加-m
选项指定新用户的家目录,最简单的办法就是删除用户,重新创建
。
-
-g
:表示指定用户所在的组
。创建用户时如果忘记
添加-g
选项指定新用户所属的组,系统就默认建立一个与用户名同名的组
。
- 新建用户之后,
用户的信息
保存在/etc/passwd
文件中。
- 标准用户直接使用
passwd
命令可以修改
自己的账户密码
。
-
-r
:表示删除
用户的家目录
。
6、查看用户信息
命令 |
作用 |
id [用户名] |
查看用户的UID和GID信息 |
who |
查看当前所有登录的用户列表 |
whoami |
查看当前登录用户的账户名 |
/etc/passwd
文件的详细信息
cat -n /etc/passwd | grep 用户名
<table>
<tr><th><th>用户名<th>分组符<th>密码<th>分组符<th>UID<th>分组符<th>GID<th>分组符<th>用户全名<th>分组符<th>家目录<th>分组符<th>登录使用的Shell
<tr><td>用户信息示例<td>user<td>:<td>x<td>:<td>1000<td>:<td>1000<td>:<td>user<td>:<td>/home/user<td>:<td>/bin/bash</tr>
</table>
说明
- 在
/etc/passwd
文件中,以:
来分组信息。
-
x
:表示加密
的密码。
-
UID
:表示用户
标识。
-
GID
:表示组
标识。
-
用户全名
:如果没有设置就使用用户名作为用户全名
。
-
登录使用的Shell
:就是输入命令的终端窗口
,Ubuntu
中默认是dash
。
usermod命令
- 主组:即
GID
,通常在新建用户时指定。使用cat -n /etc/passwd | grep 用户名
命令可以查看用户的主组信息。
- 附加组:即
用户的附加权限
,保存在etc/group
文件中。使用cat -n /etc/group | grep 用户名
命令可以查看用户的附加组信息。
命令 |
作用 |
usermod -g 主组名 用户名 |
修改用户的主组 |
usermod -G 附加组名 用户名 |
修改用户的附加组 |
usermod -s /bin/bash 用户名 |
修改用户登录的Shell |
说明
- 使用
usermod
命令修改了用户的附加组
后,需要重新登录
才生效。
- 使用
useradd
命令添加的新用户是没有权限
使用sudo
命令以root
身份执行命令的,可使用usermod -G sudo 用户名
的命令,将用户添加到sudo
附加组中。
- 如果希望新建的用户登录到
Ubuntu
后能够看到带颜色
显示的Shell
,就可使用usermod -s /bin/bash 用户名
的命令指定用户登录的Shell
。
which命令
-
/etc/passwd
:保存用户信息的文件。
-
/usr/bin/passwd
:修改用户密码的程序。
同样是passwd
,但它们所在的位置
却不同。使用which
命令可查看执行命令所在的位置
。
如:which ls
、which usermod
。
bin和sbin
- 在
Linux
系统中,绝大多数可执行文件都是保存在/bin
、/sbin
、/usr/bin
和/usr/sbin
中。
-
/bin
:二进制执行文件目录,主要用于具体的应用
。
-
/sbin
:系统管理员专用的二进制代码存放目录,主要用于系统的管理
。
-
/usr/bin
:后期安装的一些软件
。
-
/usr/sbin
:超级用户
的一些管理程序
。
说明
- 由于
cd
这个终端命令是内置在系统内核
中的,并没有独立的文件,所以无法用which
命令找到cd
命令所在的位置。
7、切换用户
命令 |
作用 |
su - 用户名 |
切换用户,并且把工作目录切换到用户的家目录 |
exit |
退出当前登录账户 |
说明
-
-
:切换到用户的家目录,否则保持原位置不变。
-
su
命令如果不接用户名,则切换到root
用户。但是不推荐
使用,因为不安全。
8、修改文件权限
命令 |
作用 |
chown 用户名 文件名/目录名 |
修改文件或目录的拥有者 |
chgrp -R 组名 文件名/目录名 |
修改文件或目录所属的组 |
chmod -R 权限 文件名/目录名 |
修改文件或目录的权限 |
说明
-
修改文件的权限
都需要通过sudo
命令来执行。
-
-R
:递归修改
目录下所有的子目录
以及文件
的组
或权限
。
注意
- 正如前面所说,
chmod
命令可以直接修改
文件或目录的权限
(包括读
、写
和执行
),但不能精确
到拥有者
、组
和其他用户
。如:chmod +/-rwx 文件名/目录名
。
-
chmod
命令在设置权限时,可以简单地使用3个数字
分别对应拥有者
、组
和其他用户
的权限。
r |
w |
x |
权限 |
权限值 |
4 |
2 |
1 |
rwx |
7 |
4 |
2 |
0 |
rw- |
6 |
4 |
0 |
1 |
r-x |
5 |
4 |
0 |
0 |
r-- |
4 |
0 |
2 |
1 |
-wx |
3 |
0 |
2 |
0 |
-w- |
2 |
0 |
0 |
1 |
--x |
1 |
0 |
0 |
0 |
--- |
0 |
<table>
<tr><th colspan=3>拥有者权限<th colspan=3>组权限<th colspan=3>其他用户权限</tr>
<tr><td>r<td>w<td>x<td>r<td>w<td>x<td>r<td>w<td>x</tr>
<tr><td>4<td>2<td>1<td>4<td>2<td>1<td>4<td>2<td>1</tr>
</table>
- 常见数字组合:
777
、755
和644
。
如:chmod -R 755 文件名/目录名
。