Linux入门之 用户操作及权限

  在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分。每个级别在公司的职责不同,权限也不同。在Linux操作系统中也一样,不同的用户身份拥有着不同的功能与权限。

Linux用户的分类


超级管理员: UID为0 root用户拥有至高无上的命令,root用户不能改名

系统用户:UID小于1000,用于管理服务,一般不允许登陆

普通用户:UID大于或等于1000,权限较小,允许登陆,只能使用bin下命令

1.用户创建,删除,修改

useradd命令

 useradd - create a new user or update default new user information

-c,  --comment  描述
-d, --home HOME_DIR 家目录
-e, --expiredate EXPIRE_DATE 过期时间
-f, --inactive INACTIVE 是否启用过期机制
-g, --gid GROUP 指定组ID号
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] 附加组
-m, --create-home 建立家目录
-M, 不建立家目录
Do not create the user′s home directory, even if the system wide
setting from /etc/login.defs (CREATE_HOME) is set to yes. -N, --no-user-group 不指定用户同名组
-r, --system 指定该帐号是系统帐号
-s, --shell SHELL 指定登录shell
-u, --uid UID 指定用户ID号
-U, --user-group 指定用户创建用户同名组
-o, --创建用户是可以uid重复

usermod命令

usermod - modify a user account
-a, --append
-L, --lock
-U, --unlock
-m, --move-home with -d

userdel命令

userdel - delete a user account and related files
-f, --force
-r, --remove 删除主目录及邮箱

change命令

chage
-h, --help display this help message and exit
-m, 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M, 密码保持有效的最大天数。
-W, 用户密码到期前,提前收到警告信息的天数。
-E, 帐号到期的日期。过了这天,此帐号将不可用。
-d, 上一次更改的日期 如果设置为0 用户下次登录必须改密码
-i, 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l, 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

who命令

  who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。而who am i 命令将列出使用该命令的当前用户的相关信息。例如:

[root@localhost ~]# who
root :0 2019-10-10 07:59 (:0)
root pts/0 2019-10-10 07:59 (:0)
root pts/1 2019-10-10 07:59 (:0) [root@localhost ~]# who am i
root pts/1 2019-10-10 07:59 (:0)

2.密码设置及密码文件

passwd命令

passwd - set user password
-l, lock
-u, unlock
-d, delete a passwd for an account
-S, This will output a short information about the status of the password for a given account.
--stdin,
echo linux |passwd --stdin vfast 1 > 0

密码文件

/etc/passwd
User account information.
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
/etc/shadow
Secure user account information.
用户名:这是用户登录系统时使用的用户名,它在系统中是惟一的
口令:此字段存放加密的口令
最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
最小时间间隔:两次修改口令之间的最小天数
最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
警告时间:从系统开始警告到口令正式失效的天数
不活动时间:口令过期多少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用

shadow文件

  目前,大多数UNIX/Linux系统中,利用/etc/shadow文件存放用户账户的加密密码信息和密码的有效期信息。

user01:!!:18173:0:99999:7:::

  Linux系统的shadow文件中,为每个用户提供一条记录,各个字段用“:”隔开,这9个字段按先后顺序分别是
注册名:密文密码:上次更改密码时间距1970年1月1日的天数:密码更改后不可以更改的天数:密码更改后必须再次更改的天数(即密码的有效期):密码失效前警告用户的天数:密码失效后距离账户被查封的天数:账户被查封时间距1970年1月的天数;保留字段

3.组的管理

groupadd

groupadd - create a new group
命令语法
groupadd [选项] 组名
命令选项
-g, --gid GID 指定GID
-r, --system 创建一个系统组
-o, --non-unique 此选项允许添加一个使用非唯一 GID 的组
注意:组名最长为 32 个字符

groupmod命令

groupmod - modify a group definition on the system
命令语法
groupmod [选项] 组名
命令选项
-g, --gid GID
-n, --new-name NEW_GROUP 给组改名
-o, --non-unique 例子
1、将组名为test3的名字改为baism
groupmod test3 -n baism

groupdel命令

groupdel - delete a group

4.组密码及组配置文件

gpasswd命令

gpasswd - administer /etc/group and /etc/gshadow
-a, --add USER add USER to GROUP
-d, --delete USER remove USER from GROUP
-r, --remove-password remove the GROUP's password
-R, --restrict restrict access to GROUP to its members 限制用户登录该组,除了组成员。
-M, --members USER,... set the list of members of GROUP
-A, --administrators ADMIN,...
set the list of administrators for GROUP
案例:
设置组root密码 #gpasswd root
用户组身份切换为root $newgrp root
组管理员设置 #gpasswd test -A user3
限制陌生用户切换到组 #gpasswd -R test
指定组的成员列表 # gpasswd test -M user3,user2

配置文件

/etc/group
Group account information.
[组名]:[密码域]:[GID]:[组员列表]
/etc/gshadow
Secure group account information.

5.相关文件

/etc/passwd
用户账户信息。
/etc/shadow
安全用户账户信息。
/etc/group
组账户信息。
/etc/gshadow
安全组账户信息。
/etc/default/useradd
账户创建的默认值。
/etc/skel/
包含默认文件的目录。
/etc/login.defs
Shadow 密码套件配置。

6.身份切换

su 命令--用户身份的切换

su [options...] [-] [user [args...]]
如:
su - root su user01

  在大多的linux的版本中,都可以使用"su"或者"su -",但是"su"和"su -"有何差别:
  "su"只是切换了root身份,但Shell环境仍然是普通用户的Shell;而"su -"连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。"su"切换成root用户以后,"pwd"一下,发现工作目录仍然是普通用户的工作目录;而用"su -"命令切换以后,工作目录变成root的工作目录了。用"echo $PATH"命令看一下"su"和"su -"以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用"su -"命令。

当一个用户同时属于多个组,如何切换组身份 ?

newgrp 命令

  newgrp指令类似login指令,它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。


附加知识:文件与文件夹权限

Linux 基本权限

linux基本权限
使用ls -l filename 命令查看文件或文件夹详细权限
ls -l
-rw-r--rw- 1 root root 22 Jan 6 15:42 abc
- --- --- ---
第1个 - 文件类型
第2-4个 - 文件所有者的权限 root rw- r 读 w 写 x 执行
第5-7个 - 文件所属的组中的成员对其权限 root r--
第8-10个 - 其他人 rw-
22 文件或文件夹的大小
Jan 6 15:42 创建日期
abc 文件名

chmod命令

chmod - 改变文件的访问权限
命令语法
chmod [options] mode file...
命令选项
-R 递归设置权限,针对目录有效
mode 谁给什么权限
u(所有者) g(所属组) o(其他人) a(所有人)
+ - =
权限 r 读 w 写 x 执行
数字权限
r 读 4
w 写 2
x 执行 1
chmod 760 abc

chown命令

chown 修改文件或文件夹所有者命令
命令语法
chown [options] user [:group] file...
命令选项
-R, 递归设置,针对文件夹
chown 新所有者 文件名
chown 新的所有者.新的所属组 文件名
-R, 递归修改

chgrp命令

chgrp  改变所属的组
命令语法
chgrp [选项] 组文件...
命令选项
-R, 递归设置权限,针对目录有效
chgrp 新所有组 文件名
chown .新的所属组 文件名

Linux特殊权限

linux特殊权限 7 777
suid 4 当一个二进制文件拥有SUID权限后,当其他用户执行该二进制文件的时候,该二进制文件就会以他所有者的权限去执行
sgid 2
要求文件夹下的新建的子文件夹或者子文件继承父文件夹的属组
sticky bit 1
如果给文件夹 赋予粘连位 则该文件夹下的文件或文件夹只能由所有者及ROOT删除

Linux隐藏权限

chattr命令

chattr [+-=][ASacdistu] 文件或文件名
命令选项:
+ : 增加某个特殊参数,其他原本存在的参数不动。
- : 删除某个特殊参数,其他原本存在的参数不动。
= : 设置一定,且仅有后面接的参数
A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。
S : 这个功能有点类似sync。就是将数据同步写入磁盘中。可以有效地避免数据流失。
a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。
c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。
d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。
i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。
j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。
s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。
u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除.
注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。

lsattr命令

lsattr 文件或文件名
查看文件或文件夹的隐藏权限

Linux file ACL 权限

setfacl命令

setfacl - set file access control lists
命令语法
setfacl [选项] file...
命令选项
-m, 修改acl
-x, 删除acl
-b, 删除所有acl
-k, 删除默认的acl
-R, 递归

getfacl命令

getfacl 查看文件权限
命令语法
getfacl file...

Linux入门(用户操作及权限)的更多相关文章

  1. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理

    用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...

  2. Linux基础入门-用户及文件权限管理

    一.Linux用户管理: 不同的用户的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于Linux的用户管理和权限机制,不同用户不能轻易查看.修改彼此的文件. 1. 查看用户: wh ...

  3. Linux之acl库的安装与使用(限制Linux某用户的访问权限)

    acl库 作用:限制Linux某用户的访问权限 acl库的安装 首先github中下载acl代码: git clone https://github.com/acl-dev/acl 进入acl, 执行 ...

  4. Linux给用户添加sudo权限

    一.linux给用户添加sudo权限: 有时候,linux下面运行sudo命令,会提示类似: xxxis not in the sudoers file.  This incident will be ...

  5. MySQL数据库(6)_用户操作与权限管理、视图、存储过程、触发器、基本函数

    用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIE ...

  6. linux增加用户并赋予权限/用户和用户组操作命令

    ===============ubuntu================================================== 在Ubuntu13.10下创建一个新的用户:Step1: ...

  7. linux下用户操作

    在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd  ...

  8. linux 学习-用户&群组&权限

    Linux用户&群组&权限  ⦁ Linux安全性模型   1)Linux使用User和Group控制使用者对文件的存取权限   2)用户使用账号和口令登录Linux   3) ...

  9. 3,linux入门到上手-文件权限管理与配置

    linux入门-文件权限管理与配置 一.关于linux的操作命令一般格式如下: 1,一行指令中第一个输入的部分绝对是"指令(command)"或"可可执行文件案(例如批次 ...

随机推荐

  1. 移动端适配,h5网页,手机端适配兼容方案.可以显示真实的1px边框和12px字体大小,dpr浅析

    以前写移动端都是用这段JS解决. (function (doc, win) { // 分辨率Resolution适配 var docEl = doc.documentElement, resizeEv ...

  2. 《2019面向对象程序设计(java)课程学习进度条》

    学习资源 1.教材P28-P76 2.第3章教学课件3.1-3.8 3.corejava.zip中第3章示例程序3-1—3-5 4.Eclipse简明教程.pdf 5.MOOC & 视频:浙江 ...

  3. 2018 Multi-University Training Contest 2(部分题解)

    Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. python串口工具的使用!!!!一定要加timeout=!!!!

    不指定timeout参数的话,就各种报错,如下: 而前面的串口,波特率则不需要指明.

  5. Nginx安装及详解

    Nginx简介: Nginx(发音engine x)专为性能优化而开发的开源软件,是HTTP.反向代理.邮件代理.TCP/UDP协议代理软件,由俄罗斯的作者Igor Sysoev开发,其最知名的优点是 ...

  6. android 多行 RadioButton的使用

    最近项目用到了多行RadioButton,随记录下. 先给出RadioButton的布局 <com.kuibu.jucai.widget.MyRadioGroup android:id=&quo ...

  7. 排序入门练习题3 谁考了第k名 题解

    题目出处:<信息学奥赛一本通>第二章 上机练习1 题目描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名的学生的学号和成绩. 输入格式 输入的第一行包含两 ...

  8. 迥异和诡异的SendMessage和PostMessage

    1       故障现象 故障现象1:能够收到SendMessage()发出的消息,但收不到PostMessage()发出的消息. 故障现象2:能够收到PostMessage()发出的消息,但收不到S ...

  9. 线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评

    全球自动驾驶创业公司最主流的测试开发用车是林肯MKZ,这是因为其高性能高精度的线控能力表现,易于使用逆向工程实现改装,以及存在成熟的线控改造服务提供商AS和Dataspeed,共同为自动驾驶初创及辅助 ...

  10. Python学习-迭代器、生成器

    一.迭代器 1. 可迭代对象 我们知道字符串.列表.元组.字典.集合都可以使用for语句进行循环遍历,然后输出每一个元素,这些都是可迭代对象. 检查对象是否是可迭代对象可以用两种方式去判断: (1)使 ...