该博客总结于 实验楼实验Linux 基础入门
Linux 用户及文件权限管理
一、Linux 用户管理
1.1 查看用户
who am i
## 或者
who mom likes
输出第一列(shiyanlou)表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可);
第二列的 pts/0 中 pts 表示伪终端,pts/0 后面那个数字就表示打开的伪终端序号;
第三列则表示当前伪终端的启动时间
who 命令其它常用参数:
参数 | 说明 |
---|---|
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
-m | 同am i,mom likes |
-q | 打印当前登陆用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |
1.2 创建用户
root 账户拥有整个系统至高无上的权限,比如新建和添加用户。大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root 用户进行登录。
su,su- 与 sudo
su 可以切换到用户 user,执行时需要输入目标用户的密码;
sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。
su - 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。
新建一个叫 lilei 的用户:
sudo adduser lilei
这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录:
ls /home
使用如下命令切换登录用户:
su -l lilei
输入刚刚设置的 lilei 的密码,然后输入如下命令并查看输出:
who am i
whoami
pwd
从这里可以看出 who am i 和 whoami 的区别。
退出当前用户跟退出终端一样,可以使用 exit 命令或者使用快捷键 Ctrl+D。
【注】adduser 和 useradd 的区别是什么
useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。
adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。
其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。
1.3 用户组
用户组就是一组用户的集合。其中用户可以共享一些资源和权限,同时拥有自己的私有资源。
查看自己属于哪个用户组
方法一:使用 groups 命令
groups shiyanlou
冒号之前表示用户,后面表示该用户所属的用户组。
【注】新建用户如果不指定用户组,默认会自动创建一个与用户名相同的用户组
方法二:查看 /etc/group 文件
cat /etc/group | sort
cat 命令用于读取指定文件的内容并打印到终端输出。 | sort 表示将读取的文本进行一个字典排序再输出。
列表太长,可使用 grep 命令过滤掉一些结果
cat /etc/group | grep -E "shiyanlou"
/etc/group 文件格式说明
用户组(Group)、用户组口令(不可见)、GID(组 ID)及该用户组所包含的用户(User),每个用户组一条记录。
group_name:password:GID:user_list
加入其他用户至 sudo 用户组
使用 usermod 命令:
groups lilei
sudo usermod -G sudo lilei
groups lilei
1.4 删除用户和用户项
sudo deluser lilei --remove-home
删除用户组可以使用 groupdel 命令,倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组。
二、Linux 文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。
包含读权限、写权限、执行权限
2.1 查看文件权限
使用 ls 命令查看文件权限
ls -l
结果每项含义:
第一项含义:
一个目录同时具有读权限和执行权限才可以打开并查看内部文件;
一个目录要有写权限才允许在其中创建文件。
li 命令其他常用用法
- 显示出来 .(当前目录)和 …(上一级目录)之外所有文件,包括隐藏文件(Linux 中以 . 开头的文件尾隐藏文件)
ls -a ## 也可以同时使用 -a 和 -l 参数 ls -al
- 显示所有文件大小,并以普通人类能看懂的方式呈现
ls -asSh ## 其中小 s 显示文件大小,大 S 按文件大小排序
2.2 变更文件所有者
切换至 lilei 用户,然后再 /home/lilei 目录新建一 iphone11 文件。
su -lilei
pwd
touch iphone11
ls -alh iphone11
可知文件所有者为 lilei 。
切换用户至 shiyanlou,执行命令改变文件所有者为 shiyanlou。
# 需要切换到 shiyanlou 用户执行以下操作
cd /home/lilei
ls iphone11
sudo chown shiyanlou iphone11
2.3 修改文件权限
方法一:二进制数字表示
每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,该顺序是固定的。
chmod 600 iphone11
## 改变权限,使对应拥有者权限为 6,所属用户组权限为 0,其他用户权限为 0。
方法二:加减赋值操作
chmod go-rw iphone11
g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户);
+和 - 分别表示增加和去掉相应的权限。