Linux学习笔记——用户及文件权限管理

Linux是一个可以实现多用户登录的操作系统,本文记录了Linux的用户管理,包括查看、创建用户和用户组,以及文件的权限机制。

Linux是一个可以实现多用户登录的操作系统,比如李雷和韩梅梅都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但他们互相不可以看到或操作对方的文件,这正是Linux用户管理和权限机制。

Linux用户管理

查看用户

直接使用whoami命令可以查看当前登录用户的用户名,此外还有who命令可以查看更多详细的信息。

创建用户

root权限,是系统权限的一种。root是Linux和unix系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到root权限。root账户就相当于Linux的“上帝”。

一般登录系统时都是以普通账户的身份登录的(即“凡人”)。如果要添加一个用户(上帝造人),那么需要“借用”一下上帝的权力,即使用sudo命令。使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在sudo用户组

  1. sudo adduser <user>:创建一个新用户(默认会自动创建一个同名的用户组),同时会在/home目录下创建一个对应的文件夹
  2. su -l <user>:切换登录用户
  3. exit(或CTRL+D):退出当前登录用户

用户组

在linux里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。一个用户可以属于多个用户组。

  1. groups <user>:查看user属于哪个用户组。输出内容冒号之前表示用户,之后表示该用户所属的用户组。
  2. cat /etc/group |sort:输出如下所示。/etc/group文件内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录。格式为group_name:password:GID:user_list,其中密码字段为表示密码不可见。
    daemon:
    :1:root
    kmem::2:root
    sys:
    :3:root ……
  3. usermod -G <group> <user>:为用户添加用户组(需要root权限)。可以用这个命令把用户加入sudo组,这样这个用户就能借用root权限。
  4. deluser <user> --remove-home:删除用户(需要root权限)。--remove-home参数表示连带删除home目录下的文件夹。

Linux文件权限

ls命令可以列出当前文件夹的文件,附带参数说明如下:

  • -l:以较详细的格式列出文件(如下所示)
  • -A:显示除了.(当前目录),..上一级目录之外的包含隐藏文件的所有文件(Linux下以.开头的文件为隐藏文件)
  • -dl <dir>:查看某一个目录的完整属性,而不是显示目录里面的文件属性
  • -sSh:小s为显示文件大小,大S为按文件大小排序,h显示所有文件大小,并以普通人类能看懂的方式呈现

    drwxr-xr-x@ 11 root wheel 374 1 25 22:23 usr

从左到右依次是:文件类型和权限,链接数,所有者,所属用户组,文件大小,最后修改时间,文件名。

1、文件类型和权限(drwxr-xr-x@)

第1位d表示文件类型。其余文件类型有:

  • d:目录
  • l:软链接
  • b:块设备
  • c:字符设备
  • s:Socket
  • p:管道
  • -:普通文件

后面9位每3个1组,分为3组,分别是拥有者权限、所属用户组权限、其他用户权限,字符的意义是:

  • r:允许读权限,比如可以使用cat <file name>之类的命令来读取某个文件的内容
  • w:允许写权限,表示你可以编辑和修改某个文件
  • x:允许执行权限,通常指可以运行的二进制程序文件或者脚本文件。Linux上不是通过文件后缀名来区分文件的类型。注意:一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息

2、链接数

链接到该文件所在的inode结点的文件名数目(关于这个概念涉及到linux文件系统的相关概念知识,自行查阅)

3、文件大小

以inode结点大小为单位来表示的文件大小,可以给ls加上-h参数(表示,这才是给人看的)来更直观的查看文件的大小

使用chown <param> <file>命令可以修改文件file权限(需要root权限)。其中参数param可以是二进制形式,也可以是加减赋值操作形式。

二进制形式如chown 755 some_file,参数中3个数字分别表示拥有者,所属用户组,其他用户的权限值。权限值的计算由r、w、x决定,有权限为1,无权限为0,由二进制加权所得,如7代表rwx,5代表r-x。

加减赋值操作形式如chmod go-rw some_file,’g’’o’还有’u’,分别表示group,others,user,’+’,’-‘就分别表示增加和去掉相应的权限。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器