linux-账号管理及文件管理权限

用户管理

用户和组账号的概述

概念

用户

包含一个名和密码,人在计算机中的体现方式,包含root、普通用户、程序用户

用户的集合,批量管理用户群权限,包含基本组、附加组(一个用户只能属于一个基本组,但是可以属于多个附加组)

权限

限制用户访问资源(文件、app、进程、硬件等)

UID:每个用户账号都有一个数字标识(身份证),root(0)、普通用户(500-60000)、程序用户(1-499)

GID:每个组账号的唯一身份标识root(0)、普通组账号(500-60000)、程序组账号(1-499)

用户和组的文件

账号文件

/etc/passwd

例如:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

用户名:密码占位符:UID:GID:全名:家目录:登陆shell解释器

密码占位符:可能是以密文的字符串代表或者X密码占位符

Uid: 用户id

gid:一个用户可以属于一个基本组和多个附加组,此处gid代表基本组id

登陆shell解释器:用户默认的的解释器,

​ 默认情况用户使用/bin/bash作为shell则可以登录系统,
​ 若修改为/sbin/nologin(禁止登陆),一般程序用户不让登录

密码文件

/etc/shadow

root:$6yAplCGeqW9eS9uONTOVrvs/GClCohFbWO6DEl.SuCR4F502CdR.XSgd1:17827:0:99999:7:::

用户名:MD5加密的密码字串信息:上次修改密码到现在的时间:密码最短有效天数:密码最长有效天数:提前几天警告用户密码将要过期:在密码过期多少天后禁用账户:账号失效时间(默认为空,表示永久)保留字段

密码最短有效天数:0表示不限制,如果设置为5那么只有过了5天才能更改

密码最长有效天数:表示过了99999天之后必须改密码

提前几天警告用户密码将要过期: 过了99999-7天就要开始警告

密码字串信息:

!!表示未初始化密码,新建用户的默认状态
密码字符串:修改密码后的状态

``!!+加密字符*+加密字符串表示密码被锁定,不能登陆空:登陆不需要密码,只能本地登录(无需密码)

组账号文件

当创建一个用户的同时,会生成其用户名相同的组(基本组)

/etc/group

mysql:x:27:zzy

组名:密码占位符:GID:成员列表

组密码文件,很少使用

/etc/gshadow

postdrop:!::

用户及组账号的管理

用户的管理

默认创建用户文件目录在/home/用户名下

useradd [选项] 用户名

useradd -d /ls/ -s /sbin/nologin -g 500 -u 888 ls

-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

userdel -r 用户名
删除用户的同时也将家目录一并删除

usermod 选项 用户名

修改根目录usermod -d /abc zs

-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
​ 并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

为用户设置密码

passwd 用户名
passwd 选项 用户名
选项:

-d 清空用户的密码(不用密码登录)
-l 锁定用户
-u 解锁用户
-S 查看用户锁定状态
更改用户的shell解释器:chsh -s 解释器目录 用户名

查看账号信息

grep 用户名 /etc/passwd

显示用户UID和所属组

id 用户名
w 查看当前主机的登陆情况

组的管理

groupadd 组名
选项-g可指定GID

groupdel 组名

gpasswd 选项 用户名 组名

选项:

-a 将单个用户添加到某个组
-M 将多个用户添加到某个组,用户之间用,隔开
-d 将某个用户在某个组中删除

查看用户属于哪个组

​ groups 用户名

查看组信息

​ grep 组名 /etc/group

管理目录及文件的属性

ls -ld 目录或文件位置

drwxr-xr-x. 4 root root 4096 6月 12 16:32 .

文件类型、权限、inode数量、属主、属组、大小、日期、文件名

第一个字符:文件类型,d目录、b块设备文件、c字符设备文件、l链接文件、-普通文件
第2-4个字符:属主对文件的权限
第5-7个字符:属组对文件的权限
第8-10个字符:任何用户对文件的权限

访问权限:读取(r)、写入(w)、执行(x)

属主:拥有该文件的用户
属组:拥有该文件的组账号

权限的表示

​ r:读取,查看内容,也可以用4表示
​ w:写入,写入(删除、更改、移动等)内容,也可用2表示
​ x:执行,执行此文件或cd到此目录,也可用1表示

设置文件或目录的权限

语法:chmod [ugoa][+-=] [rwx] 文件或目录

r=4,w=2,x=1

举例:chmod g-x, o-r 文件或目录
选项:-R 表示递归权限,目录下的子目录子文件继承父级目录的权限
语法:chmod 775 文件或目录

设置目录或文件的归属

选项-R 递归可将其子目录子文件继承父级目录的归属

设置其属主

chown 属主 文件或目录

设置其属组

chown :属组 文件或目录

设置其属主和属组

chown 属主:属组 文件或目录

umask文件反权限

umask查看系统的默认权限反掩码值,文件最大权限为666,目录最大权限为777
umask手动更改文件权限的反掩码值,更改后创建文件或目录验证反掩码值

chattr锁定文件

锁定文件,不得移动删除

chattr +i 文件路径

解锁文件

chattr -i 文件路径

案例

添加用户及分组
sudo useradd zzy  -m -U
设备用户密码
sudo passwd zzy
给用户添加sudo权限
获取sudo分组组号 (默认为27)
cat /etc/group | grep sudo 
赋予用户sudo分组
sudo usermod -G 27 zzy    
修改默认shell
sudo chsh zzy -s /bin/bash


tail /etc/passwd	查看账号文件
tail /etc/shadow	查看密码文件
useradd -d /tmp/u01 u01	新建用户u01并指定家目录为/tmp/u01,指定基本组为u01
tail /etc/passwd	验证创建的用户u01
tail /etc/shadow	验证创建的用户u01
passwd u01	为u01设置密码
123123
123123
passwd -S u01	查看用户状态
usermod -L u01	锁定用户u01
passwd -S u01	查看用户状态
passwd -u u01	解锁用户u01
passwd -S u01	查看用户状态
chsh -s /sbin/nologin u01	更改u01的登陆shell为/sbin/nologin
su - u01	登陆u01,发现不能登陆
chsh -s /bin/bash u01	更改u01的登陆shell为/bin/bash
su - u01	成功登陆u01
exit	退出会话
userdel -r u01	删除u01用户
tail /etc/passwd	验证无u01用户

tail /etc/group		查看组账号文件
groupadd -g 666 g01	创建GID为666的组g01
tail -1 /etc/group	验证创建的组g01
useradd u01	创建三个用户
useradd u02
useradd u03
gpasswd -M u02,u03 g01	将u02,u03添加到g01
gpasswd -a u01 g01	将u01添加到g01
groups u01	查看u01用户属于哪个组
grep g01 /etc/group	查看g01组都包含哪些用户
gpasswd -d u03 g01	将u03用户在g01组中删除
grep g01 /etc/group	验证g01组内成员

cd /tmp		将工作目录切换到/tmp
rm -rf ./*	删除当前目录下的所有文件
mkdir benet	创建目录benet
touch ./benet/1.file	创建benet目录下的文件1.file
ls -ld benet	查看benet目录的默认权限和归属
chmod g-x benet		将benet目录的属组去掉执行权限
ls -ld benet	验证benet目录的权限是否去除属组的执行权限
chmod 744 benet		将benet目录的权限设置为rwxr--r--
ls -ld benet	验证benet目录的权限是否同上
chmod a-r benet		将benet目录的所有人都去掉q读取权限
ls -ld benet		验证benet目录是否还有读取权限
chmod 755 benet -R	设置benet目录权限为rwxr-xr-x,并递归到其子文件子目录
ls -ld benet/1.file	验证benet目录下的子文件的权限是否同上
chown u01 benet/1.file		设置1.file文件的属主为u01
ls -ld benet/1.file	验证1.file文件的属主是否更改为u01
chown u02:g01 benet/1.file	同时设置1.file文件的属主为u02,属组为g01
ls -ld benet/1.file	验证1.file的归属

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值