Linux账号管理与ACL权限设定

目录

    • 账号
      • /etc/passwd
      • /etc/shadow
    • 群组
      • /etc/group
      • groups 命令
      • newgrp 命令
    • /etc/gshadow
    • 账号管理
      • useradd 命令
        • login.defs
      • passwd 命令
      • chage 命令
      • usermod 命令
      • userdel 命令
    • 普通用户账号命令
      • SUID
      • id 命令
      • finger 命令
      • chfn 命令
      • chsh 命令
    • 新增或移除群组
      • groupadd 命令
      • groupmod 命令
      • groupdel 命令
      • gpasswd 命令
    • 实例
    • ACL使用
      • 查看是否支持
      • setfacl 命令
      • getfacl 命令
    • 使用者身份切换
      • su 命令
      • sudo 命令
      • visudo与/etc/sudoers
    • 特殊shell和PAM
      • nologin
      • PAM模块
    • 用户信息
      • 查询使用者
      • 使用这对谈
      • 使用者邮件邮箱: mail
    • 查找系统用户或群组相关文件

账号

/etc/passwd

#用户名:
#密码位,x-有密码,空-无密码
#UID:
#	0-系统管理员; 
#	1-999 保留给系统使用(只是习惯), 网络服务或背景服务希望使用较小的权限去运作,因此不希望使用root的身份去执行这些服务.
#		系统账号:系统正常运行需要的
#	1000-60000 一般使用者
#GID: 和/etc/group有关
#用户信息说明栏: 解释账号的意义(没有重要用途)
#家目录:root家目录是/root,一般用户家目录是/home/username
#shell设定
root:x:0:0::/root:/bin/sh
sshd::15:50:::/bin/sh

/etc/shadow

#1.用户名
#2.加密密码
#3.最近更动密码的日期
#4.密码不可被改动的天数
#5.密码需要重新变更的天数
#6.密码需要变更期限前的警告天数
#7.密码过期后的账号宽限时间(密码失效日)
#8.账号失效日期
#9.保留
root:$6$.gDix4Y6aFV2yTG/$Iz5znAKENZYzc2MIWmoIcdnQyGgt3sBpx4L1WGo49dhaGT.12DmmNs8.4J136k.n/ozazwSkae700fOjGcaNt0:1:0:99999:7:::#ubuntu
-rw-r--r-- 1 root root 2539 Nov 15 17:30 /etc/passwd
-rw-r----- 1 root shadow 1441 Nov 15 17:30 /etc/shadow
#arm,不合理
-rw-------    1 root     root            48 Jul 16  2023 passwd
-rwxr--r--    1 root     root           127 Aug 26  2023 shado1.w

群组

/etc/group

#组名:
#群组密码:给群组管理员使用,很少有群组管理员
#GID:passwd(GID)->group(GID)->group(组名)
#此群组支持的账号名称:多个账号使用","分割
root::0:
sshd:*:50:

groups 命令

#初始群组:在/etc/passwd中指定的群组,一登录获得的群组
#有效群组:当前有效的群组,用于创建新文件时分配给文件群组#把用户laster加入到群组users中
usermod -a -G users laster#查看当前用户的所有群组
groups
#第一个输出的群组即为有效群组

newgrp 命令

The newgrp command is used to change the current group ID during a login session. If the optional - flag is given, the user's environment will be reinitialized as though the userhad logged in, otherwise the current environment, including current working directory, remains unchanged.
#有效群组切换,只支持当前用户所在的群组
#使用新的shell登录,环境变量没有变,使用exit返回到原来的shell
newgrp groupname       

/etc/gshadow

#/etc/gshadow, 只有ubuntu存在,主要用于群组管理员把账号加入自己群里.
#组名
#密码栏:为空或!表示无合法密码(没有群组管理员)
#群组管理员账号,参考gpasswd
#加入该群组的所有账号(与/etc/group 内容相同)
root:*::lei
daemon:*::
bin:*::
sys:*::
adm:*::syslog
tty:*::
disk:*::#命令
gpasswd

账号管理

useradd 命令

#-r: 建立一个系统的账号, 这个账号的UID会有限制(参考 /etc/login.defs)
#-m: 强制!建立用户家目录
#-M: 强制!不要建立用户家目录
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名
sudo useradd vbird1
sudo grep vbird1 /etc/passwd /etc/shadow /etc/group /etc/gshadow#/etc/passwd:vbird1:x:1001:1001::/home/vbird1:/bin/sh#/etc/shadow:vbird1:!:19709:0:99999:7:::#/etc/group:vbird1:x:1001:#uid为1500,初始群组为vbrid2
sudo useradd -u 1500 -g vbird2 vbird3
sudo grep vbird3 /etc/passwd /etc/shadow /etc/group#/etc/passwd:vbird3:x:1500:1002::/home/vbird3:/bin/sh#/etc/shadow:vbird3:!:19709:0:99999:7:::#ubuntu系统什么时候在/home目录下建议家目录呢?
sudo useradd -m homebird
ll /home/drwxr-xr-x  2 homebird homebird 4096 Dec 18 10:25 homebird/
sudo grep homebird /etc/passwd /etc/shadow /etc/group /etc/gshadow/etc/passwd:homebird:x:1501:1501::/home/homebird:/bin/sh/etc/shadow:homebird:!:19709:0:99999:7:::/etc/group:homebird:x:1501:/etc/gshadow:homebird:!::#建立一个系统账号
sudo useradd -r vbird4
sudo grep vbird4 /etc/passwd /etc/shadow /etc/group/etc/passwd:vbird4:x:998:997::/home/vbird4:/bin/sh/etc/shadow:vbird4:!:19709::::::/etc/group:vbird4:x:997:#useradd 参考档
useradd -DGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/shSKEL=/etc/skelCREATE_MAIL_SPOOL=no
cat /etc/default/useradd 
login.defs
#如果存在,使用useradd命令默认产生家目录
CREATE_HOME = yes

使用useradd增加账号参考文件

/etc/default/useradd
/etc/login.defs
/etc/skel/*

修改或增加的文件和目录

/etc/passwd 
/etc/shadow 
/etc/group 
/etc/gshadow
/home/家目录

passwd 命令

#所有人均可使用来改自己的密码
#[账号名称]省略更改当前账号
passwd [--stdin] [账号名称]
passwd [-l][-u][--stdin][-S][-n 日数][-x 日数][-w 日数][-i 日数]账号
#--stdin : 管线, shell script使用
#-l: 是lock的意思,密码失效/etc/;shadow第二栏最前面加上!
#-u: unlock
#-S 列出密码的相关参数,shadow文件内的大部分信息
#-n 第4栏
#-x 第5栏
#-w 第6栏
#-i 第7栏echo "abc534CC" | passwd --stdin vbird1

/etc/pam.d/passwd

pam_cracklib.so

chage 命令

#详细显示密码信息或修改密码信息
chage [-ldEImMW] 账户名
#-l: 列出信息
#-d: 后面接日期,修改 shadow 第三段(最近一次更改密码的日期),格式yyyy-mm-dd#第一次登录强制修改密码
sudo useradd agetest
sudo passwd agetest
sudo chage -d 0 agetest
#密码建立时间会被修改为1970/1/1,所以会有问题
sudo chage -l agetestLast password change				: password must be changedPassword expires					: password must be changedPassword inactive					: password must be changedAccount expires						: neverMinimum number of days between password change		: 0Maximum number of days between password change		: 99999Number of days of warning before password expires	: 7

usermod 命令

#更改账号信息
usermod [-cdegGlsuLU]username
#-c:后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明.
#-d:后面接账号的家目录,即修改/etc/passwd的第六栏
#-e:后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八个段数据
#-f:后面接天数,为shadow的第七字段
#-g:后面接初始群组,修改/etc/passwd的第四个字段,亦即是GID的字段
#-G:后面接次要群组,修改这个使用者能够支持的群组,修改的是/etc/group
#-a:与-G合用,可[增加次要群组的支持]而非[设定]
#-l:后面接账号名称.亦即修改账号名称,/etc/passwd的第一栏
#-s:后面接shell的实际文件,例如/bin/bash或/bin/sh
#-u:后面接UID数字,修改/etc/passwd第三栏的资料
#-L:暂时冻结密码
#-U:解冻密码#忘记建立家目录的账号建立家目录
cp -a /etc/skel /home/vbird1
chown -R vbird1:vbird1 /home/vbird1
#只需要修改目录的权限
chmod 755 /home/vbird1

userdel 命令

相关文件

用户账号/密码相关: /etc/passwd, /etc/shadow
群组相关: /etc/group, /etc/gshadow
个人文件数据: /home/username, /var/spool/mail/username

命令

Usage: userdel [options] LOGINOptions:-f, --force                   force removal of files,even if not owned by user-h, --help                    display this help message and exit-r, --remove                  remove home directory and mail spool-R, --root CHROOT_DIR         directory to chroot into--extrausers              Use the extra users database-Z, --selinux-user            remove any SELinux user mapping for the user#-r:用户的家目录一起删除
userdel [-r]username

普通用户账号命令

SUID

#u+s,g+s,o+t
sudo chmod 

id 命令

#查找某人或自己的UID/GID等信息
id [username]

finger 命令

#-s:仅列出用户的账号,全名,终端机代号和登入时间等
finger [-s] username

chfn 命令

#change finger
chfn [-foph] [账户名]

chsh 命令

#change shell
#-l:列出系统上可用的shell, /etc/shells
#-s:修改shell
chsh [-ls]sudo chsh -s /bin/bash vbird1

新增或移除群组

#群组相关文件
/etc/group
/etc/gshadow#相关命令
newgrp
groupadd
groupmod
groupdel
gpasswd

groupadd 命令

groupadd [-g gid][-r]组名
#-g:后面接某个特定的GID
#-r: 建立系统群组,与/etc/login.defs内的GID_MIN有关sudo groupadd group1
sudo grep group1 /etc/group /etc/gshadow

groupmod 命令

Usage: groupmod [options] GROUPOptions:-g, --gid GID                 change the group ID to GID-h, --help                    display this help message and exit-n, --new-name NEW_GROUP      change the name to NEW_GROUP-o, --non-unique              allow to use a duplicate (non-unique) GID-p, --password PASSWORD       change the password to this (encrypted)PASSWORD-R, --root CHROOT_DIR         directory to chroot into
#-g:修改GID数字
#-n:修改组名#把刚才新建的组修改为GID=201,组名为mygroup
sudo groupmod -g 201 -n mygroup group1 

groupdel 命令

Usage: groupdel [options] GROUPOptions:-h, --help                    display this help message and exit-R, --root CHROOT_DIR         directory to chroot into-f, --force                   delete group even if it is the primary group of a user--extrausers              Use the extra users database#删除群组前确保删除所有使用初始群组的账号
sudo groupdel mygroup

gpasswd 命令

#系统管理员命令
gpasswd groupname
gpassed [-A user1,...][-M user3,...]groupname
gpassed [-rR]groupname
# :没有任何参数,给于groupname一个密码
#-A:将groupname的主控权交给使用者管理
#-M:将某些账号加入这个群组
#-r:将groupname 密码移除
#-R:让groupname 的密码栏失效#群组管理员命令
gpasswd [-ad] user groupname
#-a:添加用户到群组
#-d:移除用户sudo gpasswd testgroup
#输入两次密码
sudo grep testgroup /etc/group /etc/gshadow
#添加组管理员账号
sudo gpasswd -A user1 testgroup 
sudo gpasswd -A user1,user2,user3 testgroup#群管理员把用户添加到群中
ssh user1@192.168.1.111
#注意不要sudo
gpasswd -a user2 testgroup

实例

ACL使用

查看是否支持

sudo dmesg | grep -i acl

setfacl 命令

setfacl [-bkRd][{-m|-x}acl参数]目标文件名
#1.针对特定使用者的方式

getfacl 命令


使用者身份切换

su 命令

#需要root用户密码
su [-lm][-c 指令][username]
#- : 单纯使用,代表使用login-shell的变量文件读取方式来登入系统;若没有用户名代表root身份
#-l: 与-类似,但后面需要加欲切换的使用者账号!也就是login-shell的方式
#-m: 与-p是一样的,表示[使用目前的环境设定,而不读取新使用者的配置文件]
#-c: 仅进行一次指令,所以-c后面可以加上指令#使用non-login shell方式登录
lei@u18:/etc$ su
Password: 
root@u18:/etc# id
uid=0(root) gid=0(root) groups=0(root)#使用login-shell方式登录
su -
#ubuntu上两种方式结果相同#只执行一次命令就返回一般用户
su - -c "head -n 3 /etc/shadow"#变更为其他人
su -l testuser1
#输入testuser1的密码#退出
exit

sudo 命令

#需要用户自己的密码
#/etc/sudoers内的用户才能够执行sudo 指令#-b: 将后续的指令放到背景中让系统自行执行,而不与目前的shell产生影响
#-u: 后面可以接欲切换的使用者,若无此则代表切换身份为root.
sudo [-b][-u 新使用者账号]#以sshd身份在/tmp底下建立一个名为mysshd的文件
sudo -u sshd touch /tmp/mysshd
ll /tmp/mysshd#以testuser1身份建立目录并在其中建立文件
sudo -u testuser1 sh -c "mkdir www;cd www;echo 'This is index.html' > index.html"#sudo执行流程
#1.当用户执行sudo时,系统于/etc/sudoers文件中搜寻该使用者是否有执行sudo的权限;
#2.若使用者具有可执行sudo的权限后,便让使用者[输入用户自己的密码]来确认;
#3.若密码输入成功,便开始进行sudo后续的指令(但root执行sudo时,不需要输入密码);
#4.若欲切换的身份与执行者身份相同,那也不需要输入密码.

visudo与/etc/sudoers

#切换到root账号
su -#单个用户设置
visudo
testuser1 ALL=(ALL:ALL) ALL#%后面接群组
%sudo ALL=(ALL) ALL#把用户添加到群组中
sudo usermod -a -G sudo lei#切换用户
su - lei
#测试sudo
sudo grep lei /etc/passwd /etc/shadow /et/group /etc/gshadow#无密码sudo
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL#仅能帮助root用户修改其他用户的密码
visudo
#指令字段必须要设置绝对路径
myuser1 ALL=(root) /usr/bin/passwd#不能修改root密码,!不可执行
myuser1 ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root#账号别名
User_Alias ADMPW = pro1, pro2,pro3,myuser1,myuser2
Cmnd_Alias ADMPWCOM =  !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
ADMPW ALL=(root) ADMPWCOM
Host_Alias
#别名需要大写#sudo 下次操作在5分钟内不需要输入密码#使用pro1的密码执行sudo su -后,变成root身份
User_Alias ADMINS = pro1, pro2,pro3,myuser1,myuser2
ADMINS ALL=(root) /bin/su -man sudoers
man visudo
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specification
root    ALL=(ALL:ALL) ALL# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL# Allow members of group sudo to execute any command
#组名
#登录者的来源主机名
#可切换的身份和组名
#可下达的指令
%sudo   ALL=(ALL:ALL) ALL# See sudoers(5) for more information on "#include" directives:#includedir /etc/sudoers.d

特殊shell和PAM

nologin

PAM模块

PAM(Pluggable Authentication Modules)

#sudo 和 root账号更改任何密码都可以
#普通用户更改密码有限制,最少8个字符

用户信息

查询使用者

#看目前登录的账号
w
who#
last #查看账号的最近登录时间
lastlog
#/var/log/lastlog

使用这对谈

write 使用者账号 [用户所在终端接口]write testuser1write: write: you have write permission turned off.
mesg y
#结束[ctrl]-d
#查看当前的状态
mesg#接受者如果不想接收任何信息
mesg n
#对于root和sudo发送的消息不能拒绝#发送给所有人
wall "I will shutdown my linux server..."

使用者邮件邮箱: mail

#ubuntu 不支持

查找系统用户或群组相关文件

#查找整个系统内属于username的文件
find / -user username
#查找整个系统内属于群组的文件
find / -group shadow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算数平均数、调和平均数、几何平均数的计算方法与应用场合

一 定义 1、算数平均数:又称均值,是统计学中最基本,最常用的一种平均指标,分为简单算术平均数、加权算术平均数。 2、调和平均数:又称倒数平均数,是总体各统计变量倒数的算数平均数的倒数。分为数学调和平…

[架构之路-265]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 如何做好详细设计

目录 一、详细设计概述 1.1 什么是详细设计 1.2 软件概要设计、软件架构、软件详细设计比较 二、软件详细设计说明书 2.1 概述 2.2 撰写步骤 2.3 主要内容 三、详细设计详解 3.1 引言 3.2 系统架构设计 3.3 模块设计 3.3.1 模块描述 3.3.2 模块间接口设计与UML图 …

深度学习中的池化

1 深度学习池化概述 1.1 什么是池化 池化层是卷积神经网络中常用的一个组件,池化层经常用在卷积层后边,通过池化来降低卷积层输出的特征向量,避免出现过拟合的情况。池化的基本思想就是对不同位置的特征进行聚合统计。池化层主要是模仿人的…

ubuntu22.04+ROS2推荐匹配的gazebo版本

放大以后看到: 可以看到ros2推荐使用版本是humble-----匹配的是Ubuntu22.04LTS -------匹配gazebo Harmonic

二叉树进阶题目(超详解)

文章目录 前言根据二叉树创建字符串题目分析写代码 二叉树的层序遍历题目分析 写代码二叉树的层序遍历II题目分析写代码 二叉树的最近公共祖先题目分析写代码时间复杂度 优化思路优化的代码 二叉搜索树与双向链表题目分析写代码 从前序与中序遍历序列构造二叉树题目分析写代码从…

每日一题——LeetCode860

个人方法: 用change数组保存我们拥有的零钱的数量,change数组只有change[5]、change[10]、change[20]是有效的,其值代表了不同面值的零钱拥有多少张 顾客付了多少钱,先把钱存入零钱数组,然后计算需要找零的金额&…

【计数DP】牛客小白月赛19

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先做法一定是计数 dp 然后状态设计,先设 dp[i] 然后看影响决策的因素:两边的火焰情况,那就 dp[i][0/1][0/1]表示 前 i 个,该位有无火焰,该位右边有无火焰的方案数…

【SpringBoot】之Security进阶使用(登陆授权)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringBoot开发之Security系列》。&#x1f3af…

智能优化算法应用:基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于天鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天鹰算法4.实验参数设定5.算法结果6.参考文献7.MA…

八股文打卡day8——计算机网络(8)

面试题:什么是强缓存和协商缓存? 我的回答: 强缓存:浏览器不需要发送请求到服务器,直接从浏览器缓存中获取数据。浏览器不需要和服务器进行交互就可以获取数据,这样极大提高了页面访问速度。 协商缓存&am…

Vue2和Vue3组件间通信方式汇总(3)------$bus

组件间通信方式是前端必不可少的知识点,前端开发经常会遇到组件间通信的情况,而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总(1&#xff09…

动态代理jdk的Proxy与Spring的CGlib

动态代理jdk的Proxy与Spring的CGlib 文章目录 动态代理jdk的Proxy与Spring的CGlib1. 为什么要使用动态代理?2. JDK Proxy 动态代理面向接口的动态代理3. CGlib动态代理4. 两个动态代理的区别 1. 为什么要使用动态代理? 动态代理:在不改变原有…

如何通过UMC配置外围组件

随着云计算技术的不断发展,在信息化建设模式上云是大势所趋。对于企业而言,已建立的内部集成并不能支撑其快速搭建开发环境、快速部署集群服务,并且动态水平扩展对多组织情况许可费用高昂、没有敏捷快速迭代机制,导致开发完毕就落…

增量式旋转编码器在STM32平台上的应用

背景 旋钮是仪器仪表上一种常见的输入设备,它的内部是一个旋转编码器,知乎上的这篇科普文章对其工作原理做了深入浅出的介绍。 我们公司的功率分析仪的前面板也用到了该类设备,最近前面板的MCU从MSP430切换成了STM32,因此我要将…

Could not resolve com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28.

1、首先进入阿里云maven仓库,在搜索栏输入无法下载的依赖名称,查询现有版本号,可以看到这里有2.9.34。 2、在build.gradle(Project)的buildscript闭包下替换为阿里云maven仓库: maven { url https://www.jitpack.io } maven { u…

基于 ACK One 实现简单的跨云协同,让业务管理更高效

作者:庄宇 本文根据 2023 云栖大会现场分享实录整理 2 年前的云栖大会,我们发布分布式云容器平台 ACK One,随着 2 年的发展,很高兴看到 ACK One 在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报…

使用 IntelliJ IDEA 创建一个 Java 文件并运行

启动 IntelliJ IDEA 并创建一个新项目: 打开 IntelliJ IDEA。 选择 “Create New Project”(创建新项目)。 在左侧,选择 “Java”,确保已经选择了正确的 JDK 版本。 点击 “Next”(下一步)。 可以跳过额外…

中心性算法归纳

中心性算法不仅是在我所学习的计算机网络当中起很重要的作用,在交通网络、社交网络、信息网络、神经网络当中也有很多的应用例子。今天我在这里总结一下场景的几种中心性算法。 参考文献 Python NetworkX库 偏心中心性(Eccentricity Centrality&#x…

银河麒麟v10 rpm安装包 安装mysql 8.35

银河麒麟v10 rpm安装包 安装mysql 8.35 1、卸载mariadb2、下载Mysql安装包3、安装Mysql 8.353.1、安装Mysql 8.353.3、安装后配置 1、卸载mariadb 由于银河麒麟v10系统默认安装了mariadb 会与Mysql相冲突,因此首先需要卸载系统自带的mariadb 查看系统上默认安装的M…

网络安全行业术语

病毒 是在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。 抓鸡 利用使用大量的程序的漏洞,使用自动化方式获取肉鸡的行为,即设法控制电脑,将其沦为肉…