Linux是一个多用户、多任务的操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间登录同一个系统执行各自不同的任务,而互不影响。再结合linux的“一切皆文件”的理念,可以把执行任务看作是操作各种各样的文件,而这些操作可以分为read,write,execut三种,也就是文件的能够赋予用户的三种权限。所以用户和权限的管理在linux系统中是尤为基础并重要的知识。
一、linux系统中的用户。
在linux系统中我们可以把用户分为两类
1、超级用户
也就是我们通常说的root,root的权限是最高的,也被称为超级权限的拥有者
2、普通用户
可分为2种:系统用户(仅用于运行服务程序)和 登录用户(系统资源的正常使用者) 从以下的图中就可以明确的区分开来
这里面有一个UID(user ID)的概念,它是linux系统对用户做的一个标识符。
以我的系统(centos7)为例:
Root的UID为0
系统用户的UID是1-999
登录用户的UID是1000-60000
我们上面说了,普通用户分为系统用户和登录用户,这是linux系统自己定义的一个组(系统组和登录组)。那我们以后要对登录用户进行管理,我们也需要对它们进行一个分类,我们称为用户组。
用户组:承载多个用户的一个集合。
我们根据不同的条件可以对组进行分类
以用户为核心:主组和附加组
主组:用户基本组
附加组:用户的额外组
根据组容纳的用户:私有组和公共组
私有组:与用户名相同,且只有一个此用户
公共组:组内包含了多个用户
用户的在系统里面的表示符为UID,那组在系统里面的标识符就是GID(group ID)
以centos7为例
Root组GID为0
系统组:1-999
登录组:1000-60000
而在管理用户个组中我们主要会用到的命令有:
用户:useradd,usermod,userdel
组:grpadd,grpmod,grpdel
Useradd:添加用户的命令。
使用格式:useradd [选项]登录名
-c:--comment添加注释信息
-d:--home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中
-g, --gid GROUP 设置基本组的GID
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;
-l, --login NEW_LOGIN:修改当前用户的用户名
-s, --shell SHELL 修改用户使用的shell类型
-u, --uid UID 更改新建用户的UID
-e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以YYYY-MM-DD格式指定
-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能。
Usermod:修改用户信息
使用格式:usermod [选项]登录名
-c, --comment 修改注释信息
-d, --home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;
-g, --gid GROUP 修改GID信息
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;
-l, --login NEW_LOGIN:修改当前用户的用户名;
-s, --shell SHELL 修改当前用户使用的shell类型
-u, --uid UID 修改当前用户的UID
-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”
userdel命令:删除用户账号
使用格式userdel [选项]登录名
-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除
二、linux的权限管理
Linux中一切皆文件,那文件的权限的管理在linux中就尤为重要了。文件的权限主要有三类:读,写,执行,这些权限主要是针对用户和用户组的。
文件系统重要面对三类用户:
属主:owner,u
属组:group,g
其他:other,o
权限的类型有三类:
r:readable可读:可获取文件的数据
w: writable 可写:可修改文件的内容
x: executable 可执行:可将次文件运行为进程
一个文件的主要属性有以下几个
三种权限在linux的表现形式为:
由此我们在管理权限会用的命令有:chown chgrp chmod
Chown 更改文件的属主
格式为: chown [OPTION]... [OWNER][:[GROUP]] FILE...
-R, --recursive:递归修改;
chgrp 更改文件的属组
格式为: chgrp [OPTION]... GROUP FILE...
Chmod 更改文件的权限
格式为:chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
赋权表示法:直接操作一类用户的所有权限位rwx;
u=
g=
o=
a=
两类用户权限相同:ug=, go=
不同类的用户权限不同:u=,g=,o=
授权表示法:操作一类用户一位或多位权限;
u+, u-
g+, g-
o+, o-
a+, a-
两类用户权限收授机制相同:ug+, ug-, ...
不同类的用户权限不同:u+,g+,o+
chmod [OPTION]... OCTAL-MODE FILE...
用8进制附加权限:
具体表达方法:
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117
例如我需要把/tmp/fstab文件改为rwxr-xr-x
则: chmod 755 /tmp/fstab
chmod [OPTION]... --reference=RFILE FILE...
--reference=RFILE:RFILE表示参考其权限模型
写的第一篇博客,还不是很成熟,希望各位多多指点,谢谢。