Ubuntu用户与组
零、思维导图
一、用户权限相关命令
1)用户和权限的基本概念
- 用户管理包括 用户 与 组 管理
- 在Linux系统中,不论是有本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
- 对 文件/目录 的权限包括:
缩写 | 全称 | 中文 | 数字代号 |
---|---|---|---|
r | read | 渎 | 4 |
w | write | 写 | 2 |
x | excute | 执行 | 1 |
2)组
- 需要让一些人拥有相同的权限,可以设立一个组,然后对组设立权限,再将不同的用户添加到对应的组中
3)ls -l的详细介绍
目录or文件 | 拥有者权限 | 组权限 | 其它用户权限 | 硬连接数 | 拥有者 | 组 | 大小 | 时间 | 名称 |
---|
- 看最左边的,第一个已经清楚了,d是目录,-是文件。后面的,我们三个三个弄成一组:第一组权限,对应文件目录的拥有者,即左边那个python。第二组权限,对应组权限,也就是右边那列python。第三组权限,就是其它用户的权限
- 硬链接数表示有多少种方式,可以访问到当前目录/文件
- 目录的硬连接数,起码有两个(除了绝对路径,还可以在当前路径下用
.
来到达)(还可以在子目录下用..
来到达)
4)chmod:修改用户权限(重要)
chmod +/- rwx 文件名/目录名
+/-表示增加权限减少权限
rwx可以任意组合
5)超级用户
- Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有访问权限
- 不推荐直接使用root账号登录系统
- 在Linux安装过程中,系统会自动创建一个用户账号,这个默认的用户就称为标准用户。
1>sudo
su
就是substitute user
的缩写,表示使用另一个用户的身份
sudo
用来以其他身份来执行命令,预设的身份为root
用户使用sudo,必须输入密码,之后有5分钟的有效期。过期需要重新输入密码
若未经授权的用户企图使用sudo,则会发出警告邮件给管理员
二、组管理
创建组/删除组的终端命令都需要通过sudo执行
命令 | 作用 |
---|---|
groupadd | 添加组 |
groupdel | 删除组 |
cat /etc/group | 确认组信息 |
chgrp -R 组名 文件/目录名 | 修改文件/目录所属组 |
三、用户管理 终端命令
1)新建用户
- 要创建用户必须得要用两个终端命令
命令 | 作用 | 备注 |
---|---|---|
useradd -m -g 组建新用户名 | 添加新用户 | -m自动建立用户家目录。-g指定用户所在的组,否则会建立一个同名的组。 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r选项会自动删除用户家目录 |
cat /etc/passwd | grep 用户名 | 查看该用户相关信息 |
cat -n /etc/passwd可以在最后一行看到新用户是否添加(没有指定密码,没有-m,也会创建成功)
- 上面的意思是:
行号 | 用户名:有密码则为x:用户ID:组ID:(该用户的全名,没有则为用户名):/家目录:shell |
---|
如果忘了用-m,则删除这个用户,重新创建
2)查看用户信息
命令 | 作用 |
---|---|
id[用户名] | 查看用户UID 和GID 信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
id 用户名(若不跟用户名,则查看当前用户ID)
uid用户代号,gid组代号。这个存储在哪个文件中呢?
输入: cat -n /etc/passwd | grep 用户名
后面的sseas是用户,不是组
输入: cat -n /etc/passwd |grep 组名
标准用户下查id,后面的名字为用户名
返回的结果(这些都是组) | 意义 |
---|---|
adm | 管理员权限 |
cdrom | 可以访问系统光驱 |
sudo | 可以以root的身份 |
whoami: 当前登录的用户 who: 现在有谁登陆
后面有个用户来源 (:0)表示是从本地登录的,也有可能为IP地址 ,前面的时间表示上一次开机的时间,
3)设置主组合附加组
- 主组:通常在在新建用户时指定,在etc/passwd的第四列GID对应的组
- 附加组: 在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限。
(((标准用户使用id时)))adm,cdrom等就是附加组。那个sseas就是主组。
cat -n /etc/passwd | grep sseas
- 设置了用户的附加组之后,需要重新登录(重新登录终端)才能生效
#修改用户的主组(GID)(这个一般不改的)
usermod -g 组 用户名#修改用户的附加组
usermod -G 组 用户名
4)修改Shell
- shell是一个软件,是可以输入终端命令的窗口
- XP里的shell,和Ubuntu里面的shell不同。Ubuntu里面默认的是dash。标准用户使用的是bash,默认用户使用的是dash(所以要改了它)。
- Ubuntu认为dash这个shell效率更高。在XP上,dash这个终端有一个非常严重的缺陷。上下左右之类的容易乱码。
#修改用户登录Shell
usermod -s /bin/bash 用户名
5)which:执行命令所在位置(重要)
- /etc/passwd可以用来保存用户的信息。
- /usr/bin/passwd用于修改用户密码的程序
- which 命令可以查看执行命令所在位置
1>可执行文件保存目录:bin和sbin
Linux
中,绝大多数可执行文件都是保存在/bin
、/sbin
、/usr/bin
、/usr/sbin
中
目录 | 全称 | 作用 |
---|---|---|
/bin |
binary | 二进制执行文件目录,主要用于具体应用 |
/sbin |
system binary | 是系统管理员专用的二进制代码存放目录,主要用于系统管理 |
/usr/bin |
user commands for applications | 后期安装的一些软件 |
/usr/sbin |
super user commands for applications | 超级用户的一些管理程序 |
6)su:切换用户
命令 | 作用 | 备注 |
---|---|---|
su - 用户名 | 切换用户,并且切换家目录 | - 可以切换家目录,否则保持位置不变 |
exit | 退出当前登录账户 |
- 如果不接用户名,会切换到root用户
- exit只是返回上一个用户。如果是第一个用户,会退出shell。
7)修改文件权限
命令 | 作用 |
---|---|
chmod | 修改权限 |
chown | 修改拥有者 |
chgrp | 修改组 |
- 这三个命令对应 ls -l 的三个列
chown 用户名 文件名or目录名
chgrp -R 组名 文件名or目录名
chmod -R 755 文件名or目录名
- chmod在设置权限时,可以见到地使用三个数字分别对应 拥有者|组|其它 用户的权限
- 命令格式如下
#直接修改文件的读|写|执行权限,不能精确到 拥有者|组|其他
所要修改的权限就是下面数字的和
r | w | x |
---|---|---|
4 | 2 | 1 |