1 用户管理介绍
autuentication 认证
authorization 授权
accounting | auditon 审计
- 在centos6 和centos7 中的管理员id范围不同,可以通过/etc/login.defs查看具体默认信息和设置
以下是centos6 centos7请自行查看
# /etc/login.defs
MAIL_DIR /var/spool/mail 表示默认创建用户时的邮箱位置
PASS_MAX_DAYS 99999 密码的最大有效期
PASS_MIN_DAYS 0 密码的最小有效期
PASS_MIN_LEN 5 密码的最小长度
PASS_WARN_AGE 7 密码的警告时间
UID_MIN 500 默认 普通用户最小UID
UID_MAX 60000 默认普通用户最大UID
GID_MIN 500 默认普通组最小GID
GID_MAX 60000 默认普通组最大GID
CREATE_HOME yes 是否创建家目录
UMASK 077 umask 指权限设定
USERGROUPS_ENAB yes 如果某个组只有要删除的用户一个 默认情况 删除用户时,会把这个组删掉
ENCRYPT_METHOD SHA512 创建用户密码的加密算法
# 可以通过 authconfig --passalgo=sha256 --update 修改默认加密算法
#/etc/default/useradd
GROUP=100 组的默认ID
HOME=/home 家目录的默认位置
INACTIVE=-1 密码又不过期
EXPIRE= 用户永不失效
SHELL=/bin/bash 默认shell
SKEL=/etc/skel 复制/etc/skel的所有文件到家目录
CREATE_MAIL_SPOOL=yes 是否创建邮箱
# /etc/passwd /etc/shadow /etc/group /etc/gshadow
passwd 存放用户的基本信息
account(用户名):password(x):uid:gid:gecos(描述信息):directory(家目录):shell(默认的shell)
shadow 为了安全将密码存放的位置
username:$6$Z0ikQ9jNLJIDyJrg$7aAWW8UX3AqF0LlbGeLVG0vBwh36Jk49SuVHJJyxN6/afdUGyE9bJwlfNg1P4.5gMnpqnNNxhKoQTmdFRatjM1:17354:0:99999:7:::
用冒号分割的每一个字段代表不同含义
1 用户名
2 $$$ 三个$ 第一段表示加密算法 第二段表示salt 第三段表示密码加密后的效果
3 是上一次修改密码的日期到1970年1月1日的天数
4 最小密码有效期
5 最大密码有效期
6 密码过期警告提前的天数
7 密码失效的后,可以宽限的的天数
8 账户有效期,过期就不可以登录
9 保留字段
group 组信息的存储位置
mail:x:12:mail,postfix
1 表示组名
2 组的密码
3 组的id号
4 组成员的列表
gshadow
mail:::mail,postfix
1 组名
2 组的密码
3 组的管理员名单
4 组的成员列表和group文件中的最后一个字段应保持一致
2 用户管理的命令
# 用户创建
useadd [options] username
-u 指定用户的id号 可以不设定
-g 指定用户主组的id号(必须实现存在) 可以不设定
-c 用户的注释信息 可以不设定 可以使用chfn设置详细介绍
-d 用户的家目录 默认是/home/usename
-G 指定用户组的附加组的id号(组事先存在)
-N 不创建主组,使用users作为主组
-r 创建系统用户
# 组创建
groupadd [option] groupname
-g 指明组id号
-r 创建为系统组
批量创建用户和密码
newusers file(格式与/etc/passwd相同的文件),默认不会创建用户的配置文件
chpasswd file(格式 每一行username:password)批量创建用户密码
# 用户属性修改
usermod [options] username
-u UID:新的UID
-g GID:新的主组id
-G 添加附加组 配置-a 使用 不会清空原先的附加组
# 用户组修改
groupmod [OPTION]... group
-n group_name:新名字
-g GID:新的GID
# 用户删除
userdel [OPTION] username
-r:删除用户的家目录
# 用户组删除
groupdel groupname
#查看用户的信息
id
-u:显示UID
-g:显示GID
-G:显示用户所属组的组ID
-n:显示名称,配合上面的命令
#加某个用户加到某个组三种用法
groupmems -a username -g groupname
gpasswd -a username groupname
usermod -aG groupname username
3 权限的管理
rwx 读4 写2 执行1
对文件的作用
r:可使用文件查看类工具获取其内容
w:可修改其内容
x:可以把此文件提请内核启动为一个进程
对目录的作用
r:可以使用ls 查看此目录中文件列表
w:可在此目录中创建文件,也可删除此目录中的文件
x:可以使用ls -l 查看此目录中文件列表,可以cd 进入此目录
X:只 给目录x 权限,不给文件x
# 权限
chmod [options] file|derectory
-R:递归修改
--reference=file:参考某个文件权限进行修改
如
> ----------. 1 root root 0 Jul 30 00:06 f1
> -rw-r--r--. 1 root root 899 Jul 30 00:06 fstab
[root@centos69 app]#chmod --reference=fstab f1
>-rw-r--r--. 1 root root 0 Jul 30 00:06 f1
>-rw-r--r--. 1 root root 899 Jul 30 00:06 fstab
# 属主
chown
-R: 递归修改
如
> -rw-r--r--. 1 root root 899 Jul 30 00:06 f1
[root@centos69 app]#chown guest.guset f1
[root@centos69 app]#chown .guest f1 表示将属主修改未指定参数的相同的用户,同时组也修改
>-rw-r--r--. 1 guest guest 899 Jul 30 00:06 f1
- 系统上的特殊权限
SUID,SGID,Sticky
SUID 只能作用在二进制可执行的文件上,表示当用户运行这个二进制文件时,以当前文件的所属主的权限进行执行,即临时切换身份
SGID 能作用在二进制可执行的文件上和文件夹上
二进制可执行程序上:表示当用户运行这个二进制文件时,以当前文件的所属组的权限进行执行,即临时切换用户的组
文件夹:表示会将在这个目录里创建的文件或文件夹属组都会默认属于此文件夹的属组
Sticky 粘滞位 只能作用在文件夹上,表示在这个文件创建的文件,除了管理员,其他用户只能删除自己的文件,不能删除别人的文件
lsarr file 显示文件的隐藏的权限属性
chattr 设置文件的隐藏的权限属性
+|- i 不能修改文件的元数据,不能删除
+|- a 只能追加内容,不可以编辑
+|- A 不修改文件的atime时间
# 在centos7 以前的版本,默认手工创建的分区,不自带acl,需要自己添加acl功能
# 查看是否有acl功能
[root@centos69 app]# tune2fs -l /dev/sda2
Default mount options: user_xattr acl 这一项是否开启
# 添加acl 功能
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
# ACL 生效 顺序:所有者,自定义用户,自定义组,其他人
setfacl
-m d: 默认权限 如:setfacl -m d:g:g2:rw /test/dir
-k file|directory 删除默认的权限
-b 清空所有的acl权限
-x 删除acl u:username g:groupname file
-M (添加) 批量 -X (减少)
-m mask:: file 设置限高线 文件的基本权限不受影响
# getfacl file1 | setfacl --set-file=- file 将file1的facl附加给facl2
#
设置facl时,对文件,如 -rw-rw-r--+ 1 root guest 605 Jul 24 16:57 f1
设置f1已经有rw 在 设置 setfacl -m g:guest:r f1
将会使用两个组权限中权限最大的权限
# acl权限的备份恢复
getfacl -R /tmp/dir1 > acl.txt 获取权限
setfacl -R -b /tmp/dir1 清空权限
setfacl -R --set-file=acl.txt /tmp/dir1 重设权限
setfacl --restore acl.txt 重设权限 同上
1 、在/testdir/dir 里创建的新文件自动属于g1 组,组
g2 的成员如:alice 能对这些新文件有读写权限,组g3
的成员如:tom 只能对新文件有读权限,其它用户(不
属于g1,g2,g3 )不能访问这个文件夹。
groupadd g1,g2,g3
useradd -g g2 alice
useradd -g g3 tom
chmod g+s,o= /test/dir
setfacl -m g:g2:rwx 给g2组有进入创建,删除文件,进入文件加的权限
setfacl -m g:g3:rwx 给g3组有进入创建,删除文件,进入文件加的权限
setfacl -m d:g:g2:rw /test/dir 设置默认的用户权限 目录
setfacl -m d:g:g3:r- /test/dir 设置默认的组权限 目录
2 、备份/testdir/dir 里所有文件的ACL 权限到
/root/acl.txt 中,清除/testdir/dir 中所有ACL 权限
,最后还原ACL 权限
getfacl -R /test/dir > /root/acl.txt 获取权限
setfacl -R -b /test/dir 清空权限
setfacl -R --set-file=/root/acl.txt /test/dir 设定权限
setfacl --restore=file 同上
4 文本处理工具
cat 查看文本内容的命令
-n 加行号
-b 空行不加号 和nl 命令相同效果
-s 连续的空行变成一个 压缩
-e 同-eV 显示每行的$字符
-A 可以查看不显示的字符
-v show-nonprinting use ^ and M- notation ,except for LFD and TABq
cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第# 个字段
#,#[,#] :离散的多个字段,例如1,3,6
#-# :连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING 指定输出分隔符
wc:计算单词数,行总数,字节总数,字符总数
-l 来只计数行数
-w 来只计数单词总数
-c 来只计数字节总数
-m 来只计数字符总数
如
[root@centos69 app]# wc /usr/share/dict/linux.words
479829 479829 4953699 /usr/share/dict/linux.words
paste 横向合并 cat 两个文件纵向合并
-d 指定行的分隔符
-s 旋转90度
f1 f2
a d
b e
c f
a b c
d e f
文本排序
sort [options] file(s)
-r 执行反方向(由上至下)整理
-n 执行按数字大小整理
-f 选项忽略(fold )字符串中的字符大小写
-u 选项(独特,unique )删除输出中的重复行
-t c 选项使用c 做为字段界定符
-k X 选项按照使用c 字符分隔的X列来整理
#查重
diff file1 file2 -u 更详细的信息
#打补丁
patch -b file diff 可以先将 file 备份程file.origin file
5 grep
grep:global search Regular expression( 正则表达式) and print out the line
1 、显示/proc/meminfo 文件中以大小s 开头的行( 要求:使用两
种方法)
cat /proc/meminfo | grep -e ^s -e ^S
cat /proc/meminfo | grep ^[sS]
cat /proc/meminfo | grep -i ^s
2 、显示/etc/passwd 文件中不以/bin/bash 结尾的行
grep -v "/bin/bash$" /etc/passwd
3 、显示用户rpc 默认的shell 程序
grep "^rpc\>" /etc/passwd | cut -d: -f7
4 、找出/etc/passwd 中的两位或三位数
egrep "\<[0-9]{2,3}\>" /etc/passwd
egrep -w "[0-9]{2,3}" /etc/passwd
5 、显示CentOS7 的/etc/grub2.cfg 文件中,至少以一个空白
字符开头的且后面存非空白字符的行
egrep "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg
6 、找出“netstat -tan” 命令的结果中以‘LISTEN’ 后跟任意多
个空白字符结尾的行
netstat -tan|egrep "LISTEN[[:space:]]*"
7 、显示CentOS7 上所有系统用户的用户名和UID
cut -d: -f1,3 /etc/passwd | egrep -w "[0-9]{1,3}$"
8 、利用df 和grep取出磁盘各分区利用率,并从大到小排序
df | grep /dev/sd | tr -s ' ' '%' | cut -d % -f 5 | sort -rn
1 、显示三个用户root 、mage 、wang 的UID 和默认shell
egrep "^(root|mage|wang)\>" |cut -d: -f7
2 、找出/etc/rc.d/init.d/functions 文件中行首为某单词(包 包
括下划线) 后面跟一个小括号的行
egrep "^[a-zA-Z_]+\>\(\)" /etc/rc.d/init.d/functions
3 、使用egrep 取出/etc/rc.d/init.d/functions 中其基名
echo "/etc/rc.d/init.d/functions" |egrep -o "[^/]+/?$"
4 、使用egrep 取出上面路径的目录名
echo "/etc/rc.d/init.d/functions" | egrep "^/.*/\<"
5 、统计last 命令中以root 登录的每个主机IP 地址登录次数
last | egrep -o "^root\>.*(([0-9]){0,3}\.){3}([0-9]{0,3})" | tr -s " " | cut -d" " -f1,3| sort | uniq -c
6 、利用扩展正则表达式分别表示0-9 、10-99 、100-199、 、
200-249 、250-255
[0-9]
echo [0..100] | egrep -wo [0-9]
[10-99]
echo [0..100] | egrep -wo [1-9][0-9]
[100-199]
echo {0..200} | egrep -ow '1[0-9]{2}'
[200-249]
echo {0..255} | egrep -ow '2[0-4][0-9]'
[250-255]
echo {0..255} | egrep -ow '25[0-5]'
7 、显示ifconfig 命令结果中所有IPv4 地址
ifconfig| egrep "\<(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
8 、将此字符串:welcome to magedu linux 中的每个字符
去重并排序,重复次数多的排到前面
echo "welcome to magedu linux "| egrep -o "." | sort | uniq -c
网友评论