Linux用户及文件权限管理

Linux下有三类用户:

1.超级用户: root  具有操作系统的一切权限, UID0

2.普通用户:具有操作系统有限的权限  UID5006000

3.伪用户: 是为了方便系统管理,满足相应的系统进程文件属主的要求,不能登录系统,UID1--499

 

 

Linux通过 /etc/passwd进行用户管理,

执行命令打开该文件: vi   /etc/passwd

在此文件中只定义账号,不定义口令。一行定义一个用户,分为七个部分:

第一列为账号名称,

第二列为用户密码(密码不在此定义)

第三列为用户标识码(用户ID),用来确认用户身份

第四列为用户所在组的表示(用户组ID)

第五列为用户相关信息(root)

第六列为用户家目录(/root),

第七列为用户的环境(用户使用的shell)


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

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

Linux用户管理

查看用户

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

创建用户

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

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

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

用户组

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

  1. groups :查看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 :为用户添加用户组(需要root权限)。可以用这个命令把用户加入sudo组,这样这个用户就能借用root权限。
  4. deluser --remove-home:删除用户(需要root权限)。--remove-home参数表示连带删除home目录下的文件夹。

Linux文件权限

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

  • -l:以较详细的格式列出文件(如下所示)
  • -A:显示除了.(当前目录),..上一级目录之外的包含隐藏文件的所有文件(Linux下以.开头的文件为隐藏文件)
  • -dl :查看某一个目录的完整属性,而不是显示目录里面的文件属性
  • -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 之类的命令来读取某个文件的内容
  • w:允许写权限,表示你可以编辑和修改某个文件
  • x:允许执行权限,通常指可以运行的二进制程序文件或者脚本文件。Linux上不是通过文件后缀名来区分文件的类型。注意:一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息

2、链接数

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

3、文件大小

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

使用chown 命令可以修改文件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,’+’,’-‘就分别表示增加和去掉相应的权限。


使用chmod命令改变文件的属性,属性的设置方法有两种,分别可以使用数字或者是符号:

Linux 文件的基本属性有9个,分别是 owner/group/others组别的read/write/excute属性。

eg: -rwxrwxrwx中,三个为一组,其中可以使用数字来表示各个属性,各属性的对照表位:

r:4

w:2

x:1

将同一组(owner/group/others)3个属性(r/w/x)累加,如当前属性为[-rwxrwx---],则是:

owner=rwx=4+2+1=7

group=rwx=4+2+1=7

others= --- =0+0+0=0

该属性为770.

 

更改属性的命令chmod语法:

chmod  [-R]  xyz  文件或目录

xyz:就是数字类型的权限属性,为rwx属性数值的和

 

eg

  ls  -al  .bashrc

  chmod  777  .bashrc

  ls  -al  .bashrc

 

 

符号类型改变文件权限

 

可以通过u(user)g(group)o(others)来表示三组的属性,a表示all,即全部的三组,读写属性可以写成rwx

 

chmod

u

g

o

a

+(加入)

-(除去)

=(设置)

r

w

x

文件或目录

 

eg:  chmod  u=rwx,go=rx  .bashrc

如果想把一个文件属性设置为 -rwxr-xr--,可以这样: chmod  u=rwx,g=rx,o=r  filename

如果不知道文件的原先属性,但想增加其的每人均可写入的权限,可以这样:

 chmod  a+w  filename

去掉所有人的x属性:

chmod  a-x  filename


你可能感兴趣的:(Linux,os)