Linux是一个多用户, 多任务多进程的服务器操作系统

用户角色:超级用户(管理员),普通用户,程序用户

用户账号管理
用户账号概述
用户:使用者在计算机内部的身份标识

用户账号的常见分类:
超级用户: root uid=0 gid=0权限最大(使用需要严谨)。宿主目录 /root
普通用户: 1000<=uid<=60000 受到权限限制,一般在宿主目录下有完整权限,宿主目录/home/用户名
程序用户: 1=<uid<=999 应用程序运行时需要通过用户身份获取相应的系统资源,通常不能用于登录系统或管理系统。

用户账号文件:
/etc/passwd,作用:保存用户名称,宿主目录,登录shell等基本信息,每一行对应一个用户的账号记录
etc/shadow:存放用户密码信息,账号有效期等,(影子文件
/etc/group:存放组帐户信息
/home/用户名:用户的宿主目录
/etc/skel:用户配置文件的模版目录
/etc/passwd文件中7个字段的详细解释
root: x:0:0:root:/root:/bin/bash
用户名:x :用户id:组id:用户备注信息(用户全名):宿主目录:登录时分配到的shell解释器,(若shell类型为/sbin/nologin,则不能登录)
密码占位符x(保存到了影子文件)
/etc/shadow文件中的9个字段的详细解释
第一字段:用户账号名
第二字段:加密的密码,!!表示密码被锁定
第三字段:上次修改密码的时间, 距1970-01-01过去多少天
第四字段:密码最短有效期(距上次密码修改起多少天内不能再次修改密码)单位天"。"0"表示随时可修改密码。
第五字段:密码最长有效期(在修改密码后的多少天必须重新修改密码。99999表示永久可以使用。)
第六字段:提前多少天警告用户口令将过期(7表示在密码过期前7天开始警告)
第七字段:在密码过期之后多少天禁用此用户
第八字段:密码过期日期,若设置则显示为过期日期距1970年1月1日多少天。
第九字段:保留字段(未使用)

创建用户:useradd
格式:useradd [选项]…用户名
-u: 指定UID标记号
-d: 指定宿主目录,默认为/home/用户名
-e:指定账号失效时间 useradd -d /IT -e “2020-02-28” jishu
-M: 不为用户建立初始化宿主目录
-s: 指定用户登录shell /sbin/nologin不可登录的shell
-g:指定用户的基本组名(gid号)私有组
-G: 指定用户的附加组名(gid号)
-c:添加备注,显示在/etc/passwd第五字段
/bin/false是最严格的禁止login选项,一切服务都不能用。
/sbin/nologin只是不允许login系统

用户账号的初始配置文件
文件来源:新建用户账号时,用户宿主目录内容从etc/skel/目录中复制而来
主要的用户初始配置文件–>脚本(只对当前用户生效) :
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登陆时执行
~/.bash_history:用户登录时从该文件加载历史命令记录

清除历史命令
history -c
删除~/.bash_history文件内容
历史命令引用
!序号
!命令开头

全局初始配置文件,对所有用户生效
/etc/bashrc //切换shell时执行
/etc/profile //登陆时执行
注意: /etc/profile和~/.bash_ profile冲突了 ,~/.bash_ _profile的配置 覆盖全局文件配置。

设置/更改用户口令passwd命令
格式:passwd [选项]…[用户名]
不指定用户名,默认修改的是当前登录用户的密码,普通用户可以修改自己的密码,root可以修改任意用户的密码。
常用选项:
-d:清空用户密码(和不设置密码不一样)
-l:锁定用户账号
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账号
-x:–maximum=DAYS:密码的最长有效时限
-n:–minimum=DAYS:密码的最短有效时限
-w:–warning=DAYS:在密码过期前多少天开始提醒用户
-i:–inactive=DAYS:当密码过期后经过多少天该帐号会被禁用

修改用户属性 usermod命令
格式:usermod [选项]…用户名
常用选项:
-l:更改用户账号的登录名字
-c:修改用户备注
-L:锁定用户账号
-∪:解锁用户账户 (passwd -l锁定的用户,通过usermod -U解锁两次)
以下选项与useradd命令中的含义相同: -u、 -d、 -e、-s、 -c、-g、-G

删除用户账号userdel
格式:userdel 用户名
常用选项:
-r :删除用户的同时删除用户的宿主目录

关于用户及密码相关控制文件
grep -v -E “$|#” /etc/login.defs
MAIL_ DIR /var/spool/mail #用户邮件存放目录
PASS_ MAX DAYS 99999 #密码默认 最长有效期
PASS_ MIN_ DAYS 0 #密码默认最短有效期
PASS_ MIN_ L EN 5 #密码默认长度
PASS_ WARN_ AGE 7 #密码过期警告时间
UID_ MIN 1000 #普通用户起始UID范围
UID_ MAX 60000 #普通用户结束UID范围
SYS_ UID_ MIN 201 #系统用户起始UID范围
SYS_ UID_ MAX 999 #系统用户结束UID范围
GID MIN 1000 #普通组起始GID范围
GID_ MAX 60000 #普通组结束GID范围
SYS_ GID_ MIN 201 #系统组起始GID范围
SYS_ GID_ MAX 999 #系统组结束GID范围
CREATE_HOME yes #是否创建用户宿主目录
UMASK 077 #用户宿主目录默认权限
USERGROUPS_ENAB yes #表示userdel删除用户时,如果该用户用户组如果没有成员存在,则会删除该用户组
ENCRYPT_METHOD SHA512 #表示用户密码加密方式,此处表示用MD5加密密码
grep -v -E “^ $ |^#” /etc/useradd
GROUP=100
HOME=/home #把用户的主目录建在home中
INACTIVE=-1 #是否启用帐号过期停权,-1表示不启用
EXPIRE= #帐号终止日期,不设置表示不启用;
SHELL=/bin/bash #所用SHELL的类型;
SKEL =/etc/skel #默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的
/lib64/security/pam_ cracklib.so
控制密码复杂度的关键文件,Redhat公司专门]开发了crackib这个安装包来判断密码的复杂度。
man pam_ crackib
retry=N #改变输入密码的次数,默认值是1。就是说,如果用户输入的密码强度不够就退出。可以使用这个选项设置输入的次数,以免一切都从头再来
minlen=N #新密码最低可接受的长度
difok=N #默认值为10。这个参数设置允许的新、旧密码相同字符的个数。不过,如果新密码中1/2的字符和旧密码不同,则新密码被接受
dcredit=N #限制新密码中至少有多少个数字
ucredit=N #限制新密码中至少有多少个大写字符。
Icredit=N #限制新密码中至少有多少个小写字符。

组账号管理
组账号概述
组:用户集合,组的存在便于管理多个用户权限
组账号分类:
基本组(私有组)主组,用户最多一个基本组,不可删除
附加组(公共组)用户可属于多个附加组,可删除
UID:用户标识号
GID:组标识号,私有组通过GID查找

组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息(较少使用)
root: x:0:zhangsan
第1个字段:组名
第2个字段:密码占位符
第3个字段: GID
第4个字段:组内的成员信息

添加组账号groupadd命令
格式:groupadd [-g GID]组账号名
常用选项:
-g GID

设置组账号密码(极少用),添加,删除组成员gpasswd命令
格式:gpasswd [选项]…组账号名
常用选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M: 定义组成员列表,以逗号分隔
增加或删除组成员,也可用vi编辑器对/etc/group文件直接编译修改

删除组账号groupdel命令
格式:groupdel 组账号名

查询命令——id,groups,finger,w,whoami,who
1,id命令
作用:查询用户身份标识,查用户的id(包括组id)
格式:id [用户名]
2,groups命令
作用:查询客户所属的组
格式:groups [用户名]
3,finger 命令(需安装)
作用:查询账号的详细信息
格式:finger [用户名]
whoami:查询当前登录的账号名
who:查询以登录到主机的用户
w:查询已登录到主机的用户信息
踢出登录系统的用户
fuser -k /dev/tty1

权限及归属管理
1,基本访问权限
读权限r:针对目录可以查看目录的列表(|s) ,针对文件可以查看文件内容(cat more less head tail)
写权限w:针对目录可以改动目录的列表内容(rm touch mkdir cp mv),针对文件可以修改文件内容(vim sed)
可执行x:针对目录可以切换(cd) ,针对文件允许运行程序(二 进制文件,脚本文件)
读写执行
rwx=4+2+1
2,归属(所有权)
属主:拥有该文件的用户账号
属组:拥有该文件的组账号
3,查看文件的权限和归属
第一位表示文件类型
-:表示一般文件
d:表示目录
l:表示软连接
p:表示PIPE管道文件
s:表示socket通信套接字文件
c:表示字符设备文件
b:表示块设备文件

设置文件或目录的权限chmod命令
格式:
chmod [-R] [ugoa] [±=] [rwx] 参数
chmod [-R] [nnn] 参数
常用选项:
-R:表示以递归的方式设置目录及目录下的所有子目录及文件的权限,不加R的话只会修改当前指定目录
u:属主
g:属组
o:其他人
a:所有人
+:添加
-:删除
=:重置
nnn:8进制的数字权限,如:777 666 644 755 等
注意:在建立目录时用-m选项可以直接设置新建目录的权限
mkdir 123 -m 777

设置文件的归属chown命令
格式:
chown:属主,文件
chown:属组,文件 = chown :属组 文件
chgrp 属组 文件
chown:属主:属组 文件

权限掩码umask

扩展知识点

1,ACL权限控制
ACL概述
ACL(Access Control List),主要作用可以提供除属主,属组,其他人的rwx权限之外的细节权限设定
2,ACL的权限控制
使用者(user)
群组(group)
默认权限掩码(mask)

启动ACL
yum -y install acl

ACL的设置,setfacl命令
格式:setfacl [选项] [acl参数] 目标文件或目录
常见选项:
-m:设置后续的acl参数,不可与-x一起使用
-x:删除后续的acl参数,不可与-m一起使用
-b:删除所有的acl参数
-k:删除默认的acl参数
-R:递归设置acl参数
-d:设置默认acl参数,只对目录有效

增加用户Tetsu与redhat组具有读写权限,
useradd Tetsu
groupadd redhat
setfacl -m u:Tetsu:rw /test/123.txt
setfacl -m g:redhat:rw /test/123.txt

ACL的查询 getfacl命令
格式:getfacl 文件或目录
getfacl /test/123.txt

getfacl: Removing leading '/' from absolute path names
# file: test/123.txt
# owner: root
# group: root
user::rw-
user:Tetsu:rw-
group::r--
group:redhat:rw-
mask::rw-
other::r--

权限掩码

递归修改目录下现有文件的ACL设置

递归式修改目录及目录下的ACL设置,仅对当前存在的文件生效,但新建文件并不具有相同的ACL设置。

预设ACL权限

-d:设置默认acl参数,只对目录有效

删除单个ACL设置

删除某文件或目录全部ACL设置

递归删除/test/目录及其目录下所有文件的ACL设置

特殊权限 SUID SGID SBIT

chmod 2777 /test/

chmod 1777 /test/ 除了属主和属组,其他用户有777权限也不能删除/test/下的文件

linux用户账户与组账户,文件权限及归属管理的更多相关文章

  1. Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  2. Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结

    Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...

  3. (转)用户管理 之 Linux 用户(user)和用户组(group)管理概述

    用户管理 之 Linux 用户(user)和用户组(group)管理概述  原文:http://www.cnblogs.com/licheng/p/6103992.html 一.理解Linux的单用户 ...

  4. Linux权限及归属管理 磁盘管理 文件系统 LVM管理

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  5. linux 用户和组及文件权限的相关内容

    1.添加用户(只有管理员用户或具有管理员权限的用户可以添加删除用户) useradd  用户名 (laoda)  新创建用户后home下会多一个laoda的目录 ,此目录中存放的是laoda用户相关的 ...

  6. centos7用户,组及文件权限管理

    centos7安装过程中如果没有创建用户的话,默认只有ROOT用户,这个用户是具有最高权限的帐户,可以做任何事情,但实际生产环境中我们一般不会使用这个用户,因为权限太大了,很危险. 所以在生产环境中就 ...

  7. Linux用户、群组和权限命令总结

    新建用户natasha,uid为1000,gid为555,备注信息为“master”   groupadd -g 555 natasha useradd -u 1000 -g 555 -c maste ...

  8. Linux中创建新用户并赋给指定文件权限

    工作中用到了,写篇日志总结一下. 创建新的用户: 第一种方式: 创建用户: adduser name 创建密码: passwd name(回车后出现修改密码的提示) 该方式创建的用户目录默认在home ...

  9. 菜鸟学Linux命令:chmod命令和数字文件权限

    chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权限 ...

  10. linux修改文件权限和用户组管理小结

    如何在linux下修改组权限 chmod g+r path/file 加读权限 当前目录 chmod -R g+r path/file 加读权限 当前目录以及子目录 g-r 减读权限g+w 加写权限g ...

随机推荐

  1. mysql函数实现oracle的序列

    1.创建一张伪序列表 CREATE TABLE sequence ( seq_name VARCHAR (50) NOT NULL,-- 序列名称 current_val INT NOT NULL,- ...

  2. Ubuntu18.04LTS虚拟机优化

    1.没网 刚安装好没网,可以设置NAT连接,也可以直接设置为桥接模式联网.这里直接桥接. 网络中心使用的是以太网,所以就在菜单的"编辑"里的"虚拟网络编辑器"里 ...

  3. Educational Codeforces Round 112 (Rated for Div

    Educational Codeforces Round 112 (Rated for Div. 2) CodeForces - 1555D Say No to Palindromes 如果一个字符串 ...

  4. FFmpeg转换直播流格式

    mp4转rtsp ffmpeg -re -i 1671680590843.mp4 -vcodec copy -acodec copy -f rtsp rtsp://localhost:8554/liv ...

  5. django限制表单上传图片的大小

    django的ImageField没有提供控制上传图片的内置方法,我们可以在表单验证的过程中用clean函数来控制,搬运博客园 python小童鞋 ,可以通过重写ImageField的方法来控制上传图 ...

  6. 《Rust权威指南》学习笔记——4. 认识所有权

    Rust权威指南学习笔记--认识所有权 什么是所有权 1. 所有权规则 Rust中的每一个值都有一个对应的变量作为它的所有者. 在同一时间内,值有且仅有一个所有者. 当所有者离开自己的作用域时,它持有 ...

  7. 通过抓取pintpoint2的页面信息把数据存入数据库python3

    目标:对生产环境的服务质量进行量化, 解决办法:把pintpoint2里的数据转存入mysql数据库,作成报表,目前支持总请求数,错误请求数,中位数,平均数,95值(每分钟一次定时任务),其它指标可以 ...

  8. drush use dev.mentor.com | expecting statement

    在多站点的环境中, 不清楚在哪个目录下运行drush cc all, 这时可以运行 drush use dev.mentor.com然后还发现一个很搞笑的事情, 在一个文件的末尾一直现实红色报错符号, ...

  9. 有null值的子查询,子查询加排序,速度大幅提升

    意外发现,如果子查询结果有大量null值,加上一个排序,最后查询速度飞起

  10. c++基础: uint8_t uint16_t uint32_t uint64_t size_t ssize_t数据类型

    https://blog.csdn.net/lzx_bupt/article/details/7066577 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个 ...