Linux用户及文件权限管理

一、Linux 用户管理


1.1 查看用户

$ who am i

或者

$ who mom likes

输出的第一列表示打开当前伪终端的用户的用户名

          (要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可),

          第二列的 pts/0 中 pts 表示伪终端。

who 命令其它常用参数

参数    说明

-a        打印能打印的全部

-d        打印死掉的进程

-m       同am i,mom likes

-q        打印当前登录用户数及用户名

-u        打印当前登录用户登录信息

-r         打印运行等级

1.2 创建用户

在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。

现在我们新建一个叫 xiaoming 的用户:

$ sudo adduser xiaoming

设置完密码后,后面的选项的一些内容可以选择直接回车使用默认值

这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录

切换用户 $ su xiaoming 输入刚才设置的 xiaoming 的密码

退出当前用户可以使用 exit 命令 或者 Ctrl+d

1.3 用户组

在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,

它们共享一些资源和权限,同时拥有私有资源。


在 Linux 里面如何知道自己属于哪些用户组呢?

方法一:使用 groups 命令

$ groups xiaoming
显示 xiaoming : xiaoming
其中冒号之前表示用户,后面表示该用户所属的用户组。

方法二:查看 /etc/group 文件

$ cat /etc/group | grep -E “xiaoming”
将其它用户加入 sudo 用户组
$ su shiyanlou
$ groups xiaoming
$ sudo usermod -G sudo xiaoming
$ groups xiaoming

1.4 删除用户

$ sudo deluser xiaoming --remove-home

二、Linux 文件权限

2.1 查看文件权限

$ ls -l
Linux用户及文件权限管理
Linux用户及文件权限管理
  • 显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)
  • $ ls -A 
  • 查看某一个目录的完整属性,而不是显示目录里面的文件属性:
  • $ ls -dl <目录名> 
  • 显示所有文件大小
  • $ ls -AsSh
  • 其中小 s 为显示文件大小,大 S 为按文件大小排序

2.2 变更文件所有者

假设目前是xiaoming 用户登录,新建一个文件,命名为“iphoneX”:
$ touch iphoneX

$ ll iphoneX
可见文件所有者是 xiaoming
变更文件所有者为 shiyanlou
$ cd /home/xiaoming
$ ls iphoneX
$ sudo chown shiyanlou iphoneX
$ ll iphoneX
现在查看,发现 文件所有者成功修改为 shiyanlou

2.3 修改文件权限

如果你有一个自己的文件不想被其他用户读、写、执行,
那么就需要对文件的权限做修改,这里有两种方式:
  • 方式一:二进制数字表示
Linux用户及文件权限管理
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)对应一个 " rwx ",也就是一个 “ 7 ” ,所以如果我要将文件“ iphoneX ”的权限改为只有我自己可以用那么就这样:
$ chmod 700 iphoneX
第一个 7是拥有者的权限
第二个 0 是用户组的权限
第三个 0 是其他用户的权限

  • 方式二:加减赋值操作
完成上述相同的效果,你可以:
$ chmod go-rw iphoneX
go 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。