首页
友链
统计
留言
更多
直播
壁纸
推荐
我的毛线
哔哔点啥
院长科技
Search
1
本站官方群:894703859------|诚邀各位大佬的入驻!
580 阅读
2
pxe 自动化安装系统
570 阅读
3
软件安装
434 阅读
4
新款螺旋帽子编织#夏凉帽#合股线夏凉帽编织
379 阅读
5
10 个Linux Awk文本处理经典案例
372 阅读
linux
yaml
iptables
shell
ansible
ssl
awk
sed
pxe
prometheus
Nginx
k8s
fish
dev
go占位符
clickhouse
html标签
vue基础
html表格
vue项目
vscode
css基础
css定位
css精灵图
code
html5
project
js
jQuery
面向对象
编织
编织视频
常用工具
微软
登录
/
注册
Search
标签搜索
基础
js
Nginx
css
webapi
jQuery
面向对象
command
项目
ansible
用户权限
go
html
文件管理
命令
k8s
shell
pxe
awk
vscode
JustDoIt
累计撰写
114
篇文章
累计收到
4
条评论
首页
栏目
linux
yaml
iptables
shell
ansible
ssl
awk
sed
pxe
prometheus
Nginx
k8s
fish
dev
go占位符
clickhouse
html标签
vue基础
html表格
vue项目
vscode
css基础
css定位
css精灵图
code
html5
project
js
jQuery
面向对象
编织
编织视频
常用工具
微软
页面
友链
统计
留言
直播
壁纸
推荐
我的毛线
哔哔点啥
院长科技
搜索到
114
篇与
的结果
2023-11-01
Linux系统ACL控制
1.ACL访问控制概述上一章节我们学习了基础权限UGO、特殊权限,但所有的权限是针对某一类用户设置的, 如果希望对文件进行自定义权限控制,就需要用到文件的访问控制列表ACLUGO设置基本权限: 只能一个用户,一个组和其他人ACL设置基本权限: r、w、x设定acl只能是root管理员用户. 相关命令: getfacl , setfaclacl基本使用方式 [root@xuliangwei ~]# cp /etc/passwd /root/passwd [root@xuliangwei ~]# ll passwd -rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt [root@xuliangwei ~]# getfacl passwd # file: passwd # owner: root # group: root user::rw- group::r-- other::r-- 1.设定acl权限案例如下-rw-r--r-- 1 root root 1380 Feb 27 11:25 passwd alice 拥有读写权限 rw bgx 没有任何权限 - jack 组拥有读权限 r 匿名用户拥有读写权限 rw //建立相关用户 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] //增加用户 alice 权限 [root@xuliangwei ~] //增加用户 bgx 权限 [root@xuliangwei ~] //增加匿名用户权限 [root@xuliangwei ~] //增加组权限 [root@xuliangwei ~] 注意: 如果用户同时属于不同的两个组,并且两个组设定了acl访问控制 1.根据acl访问控制优先级进行匹配规则 2.如有用户拥有多个组的权限不同的权限,优先使用最高权限(模糊匹配) 2.查看acl权限[root@xuliangwei ~] -rw-rw-rw-+ 1 root root 1531 Jan 26 07:52 passwd [root@xuliangwei ~] user::rw- user:bgx:--- user:alice:rw- group::r-- group:jack:r-- mask::rw- other::rw- 3.移除acl权限 [root@xuliangwei ~]# setfacl -x g:jack passwd [root@xuliangwei ~]# setfacl -x u:bgx passwd [root@xuliangwei ~]# setfacl -b passwd [root@xuliangwei ~]# setfacl -k dir 4.查看acl帮助//EXAMPLES 示例文档 [root@xuliangwei ~] //复制 file1 的 ACL 权限给 file2 [root@xuliangwei ~] [root@xuliangwei ~] 2.ACL高级特性MASKmask用于临时降低用户或组的权限,但不包括文件的所有者和其他人。mask最主要的作用是用来决定用户的最高权限。mask默认不会对匿名用户降低权限,所以为了便于管理文件的访问控制,建议匿名用户的权限置为空 [root@xuliangwei ~]# setfacl -m mask::rw filename 小结1.mask会影响哪些用户,除了所有者和其他人。2.mask权限决定了用户访问文件时的最高权限。(如何影响)3.mask用于临时降低用户访问文件的权限。(mask做什么)4.任何重新设置acl访问控制会清理mask所设定的权限。3.ACL高级特性Defaultdefault: 继承(默认)alice能够对/opt目录以及以后在/opt目录下新建的文件有读、写、执行权限 [root@xuliangwei ~]## setfacl -R -m u:alice:rwX /opt [root@xuliangwei ~]## setfacl -m d:u:alice:rwX /opt [root@linux-node1 ~]# getfacl /opt/ getfacl: Removing leading '/' from absolute path names # file: opt/ # owner: root # group: bgx user::rwx user:alice:rwx group::rwx mask::rwx other::rwx default:user::rwx default:user:alice:rwx default:group::rwx default:mask::rwx default:other::rwx 4.ACL访问控制实践案例案例1: 将新建文件的属性修改tom:admin, 权限默认为644要求: tom对该文件有所有的权限, mary可以读写该文件, admin组可以读写执行该文件, jack只读该文件, 其他人一律不能访问该文件//实验前, 建立几个普通用户 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] //检查用户属性 [root@linux-node1 ~] uid=1004(tom) gid=1004(tom) groups=1004(tom) [root@linux-node1 ~] uid=1006(mary) gid=1006(mary) groups=1006(mary),1007(admin) [root@linux-node1 ~] uid=1005(bean) gid=1005(bean) groups=1005(bean),1007(admin) [root@linux-node1 ~] uid=1002(jack) gid=1002(jack) groups=1002(jack) [root@linux-node1 ~] uid=1007(sutdent) gid=1008(sutdent) groups=1008(sutdent) //准备相关文件 [root@linux-node1 ~] [root@linux-node1 ~] [root@linux-node1 ~] //检查设定前的acl列表 [root@linux-node1 ~] user::rw- group::r-- other::r-- //设定acl权限 [root@linux-node1 ~] //检查acl权限 [root@linux-node1 ~] user::rwx user:jack:r-- user:mary:rw- group::r-- group:admin:rwx mask::rwx other::--- acl的控制规则是从上往下匹配1.tom由于是文件的拥有者,所以直接按照user::rwx指定的权限去操作2.mary用户从上往下寻找匹配规则,发现user:mary:rw-能够精确匹配mary用户,尽管mary属于admin组,同时admin组有rwx的权限,但是由于mary用户的规则在前面,所有优先生效。3.bean由于找不到精确匹配的规则,而bean是属于admin组,根据文件的定义,该文件是属于admin组,所以bean的权限是按照group:admin:rwx的权限去操作。4.jack用户从上往下寻找匹配规则,发现user:jack:r--能够精确匹配jack用户。5.student用户找不到精确匹配的user定义规则, 也找不到相关组的定义规则,最后属于other。案例2: lab acl setupcontroller组成员有:student sodor组成员有:thomas,james 目录: /shares/steamies 文件: /shares/steamies/file 脚本: /shares/steamies/test.sh controller属于该目录的所属组, 新建文件必须属于controller组 sodor组的成员对该目录拥有rwx权限 sodor组成员james对该目录及子目录(包括以后新建立的文件)没有任何权限 实际操作 [root@linux-node1 ~]# groupadd controller [root@linux-node1 ~]# groupadd sodor [root@linux-node1 ~]# useradd student -G controller [root@linux-node1 ~]# useradd thomas -G sodor [root@linux-node1 ~]# useradd james -G sodor [root@linux-node1 ~]# mkdir /shares/steamies -p [root@linux-node1 ~]# echo "file" >> /shares/steamies/file [root@linux-node1 ~]# echo "echo 123" >> /shares/steamies/test.sh [root@linux-node1 ~]# chmod 755 /shares/steamies/test.sh [root@linux-node1 ~]# chown -R :controller /shares/steamies/ [root@linux-node1 ~]# chmod g+s /shares/steamies/ [root@linux-node1 ~]# setfacl -R -m g:sodor:rwX,u:james:- /shares/steamies/ [root@linux-node1 ~]# setfacl -R -m d:g:sodor:rwX,d:u:james:- /shares/steamies/ [root@linux-node1 steamies]# getfacl /shares/steamies/ getfacl: Removing leading '/' from absolute path names # file: shares/steamies/ # owner: root # group: controller # flags: -s- user::rwx user:james:--- group::r-x group:sodor:rwx mask::rwx other::r-x default:user::rwx default:group::r-x default:group:sodor:rwx default:mask::rwx default:other::r-x 转 xuliangwei.com
2023年11月01日
21 阅读
0 评论
0 点赞
2023-11-01
Linux系统特殊权限
1.Linux系统特殊权限1.suid以文件的所属用户身份执行命令, 而不是以当前用户的身份执行命令-rwsr-xr-x. 1 root root 54080 Nov 5 2016 /usr/bin/cat root用户执行cat,最终运行的身份是root bgx用户执行cat, 最终运行的身份是bgx suid root用户执行,最终运行的身份是root bgx用户执行,最终运行的身份是root 2.将目录设置为sgid后续如果在该目录下创建文件, 都将与该目录的所属组保持一致drwxr-srwx. 2 root devops 29 Jun 14 21:01 /opt/ bgx用户登陆后, 在/opt/目录创建文件或者目录属主和属组是 最终属主和属组 bgx devops xlw用户登陆后, 在/opt/目录创建文件或者目录属主和属组是 最终属主和属组 xlw devops root用户登陆后, 在/opt/目录创建文件或者目录属主和属组是 最终属主和属组 root devops 3.sticky任何人都可以在该目录下创建文件以及目录, 但只能删除自己创建的文件和目录drwxrwxrwt. 7 root root 93 Jun 14 21:47 /tmp/ 4.如何设置特殊权限用符号表示: setuid=u+s; setgid=g+s; sticky=o+t用数值表示: setuid=4; setgid=2; sticky=11.1set_uid文件的执行有效身份为文件的拥有者,而不是执行者的身份。演示//检查passwd文件权限,匿名用户没有权限查看 [root@xuliangwei ~] [root@xuliangwei ~] -rw-r----- 1 root root 1548 Dec 9 18:45 /etc/passwd //使用普通用户无法查看 [xuliangwei@xuliangwei root]$ cat /etc/passwd cat: /etc/passwd: Permission denied //给cat命令赋予suid [root@xuliangwei ~] [root@xuliangwei ~] -rwsr-xr-x. 1 root root 48568 Mar 23 2017 /bin/cat suid授权方法suid 4000 权限字符s(S),用户位置上的x位上设置。 授权方法:chmod 4755 passwd chmod u+s passwd suid的作用1.让普通用户拥有二进制文件的所属主权限,二进制文件需要有执行权限。2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是大S。3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效。4.如果普通用户需要操作没有权限的文件,为对应的命令赋予Suid权限。注意: suid双刃剑, 是一个比较危险的功能, 对系统安全有一定的威胁。1.2set_gid演示案例[root@xuliangwei /] [root@xuliangwei /] [root@xuliangwei /] [xuliangwei@xuliangwei ~]$ mkdir /opt/sgid_test [xuliangwei@xuliangwei ~]$ ll /opt/sgid_test -d drwxrwsr-x. 2 xuliangwei root 4096 Nov 14 00:27 /opt/sgid_test sgid授权方法suid 2000 权限字符s(S),取决于属组位置上的x。 授权方法:chmod 2755 directory chmod g+s directory sgid作用1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。1.3sticky粘滞位sticky对目录有写权限的用户仅仅可以删除目录里属于自己的文件,不能删除其他用户的文件系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。sticky授权方法粘滞位 1000 权限字符t(T),其他用户位的x位上设置。 授权方法:chmod 1755 /tmp chmod o+t /tmp sticky作用1.让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。2.特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T3.一个目录即使它的权限为"777"如果是设置了粘滞位,除了目录的属主和"root"用户有权限删除,除此之外其他用户都不允许删除该目录。2.权限属性chattr设置文件属性(权限),针对所有用户,包括 roota:让文件或目录仅可追加内容 i:不得任意更动文件或目录 //创建文件并设置属性 [root@xuliangwei ~] [root@xuliangwei ~] ---------------- file_a ---------------- file_i //设置属性 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] -----a---------- file_a ----i----------- file_i //a权限, 无法覆盖写入和删除文件 [root@xuliangwei ~] bash: file_a: Operation not permitted [root@xuliangwei ~] rm: cannot remove ‘file_a’: Operation not permitted //a权限, 只能追加, 适用于日志文件 [root@xuliangwei ~] //i权限, 无法写入, 无法删除 [root@xuliangwei ~] bash: file_i: Permission denied [root@xuliangwei ~] bash: file_i: Permission denied [root@xuliangwei ~] rm: cannot remove ‘file_i’: Operation not permitted //解除限制 [root@tianyun ~] [root@tianyun ~] 3.进程掩码umaskumask用于控制系统权限, 默认系统权限较大, 需要靠Umask来变更权限默认新建文件,系统默认最大权限为666默认新建目录,系统默认最大权限是777我们在新建文件和目录的默认权限会受到umask的影响, umask表示要减掉的权限。创建目录权限值为777-umask创建普通文件权限值为644-umaskumask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile注意umask影响的范围shell (vim,touch) --umask--> 新文件或目录权限vsftpd --umask--> 新文件或目录权限samba --umask--> 新文件或目录权限useradd --umask--> 用户 HOME1.假设umask值为:022(所有位为偶数) //文件的起始权限值 6 6 6 - 0 2 2 = 6 4 4 2.假设umask值为:045(其他用户组位为奇数) //计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。 6 6 6 - 0 4 5 = 6 2 1 3.默认目录权限计算方法 7 7 7 - 0 2 2 = 7 5 5 umask 044 //umask所有位全为偶数时 示例:mkdir d044 //目录733 示例:touch f044 //文件622 umask 023 //umask值的部分或全部位为奇数时 示例:mkdir d023 //目录754 示例:touch f023 //文件644 umask 035 //umask值的所有位为奇数时 示例:mkdir d035 //目录742 示例:touch f035 //文件642 示例1: 在shell进程中创建文件//查看当前用户的umask权限 [root@xuliangwei ~] 0022 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] drwxr-xr-x 2 root root 6 Jan 24 09:02 dir0022/ -rw-r--r-- 1 root root 0 Jan 24 09:02 file0022 示例2: 修改shell umask值(临时生效)[root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] drwxrwxrwx 2 root root 6 Jan 24 09:04 dir000 -rw-rw-rw- 1 root root 0 Jan 24 09:04 file000 示例3: 修改shell umask值(永久生效, 强烈不建议修改)[root@xuliangwei ~] if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi //立即在当前 shell 中生效 [root@xuliangwei ~] 示例4: 通过umask决定新建用户HOME目录的权限[root@xuliangwei ~] UMASK 077 [root@xuliangwei ~] [root@xuliangwei ~] drwx------. 4 dba dba 4096 3 月 11 19:50 /home/dba/ [root@tianyun ~] UMASK 000 [root@xuliangwei ~] [root@xuliangwei ~] drwxrwxrwx. 4 sa sa 4096 3 月 11 19:53 /home/sa/ 示例 5:例如vsftpd进程/etc/vsftpd/vsftpd.conf[root@tianyun ~] [root@tianyun ~] anon_umask local_umask 4.特殊权限练习题lab permissions setup考试必考: 创建三个用户, 分别为curly``larry``moe这些用户都是stooges组的成员。这些用户帐号密码都为password1.要求以上用户和组可以在/home/stooges目录里访问,创建,删除文件2.其他用户一律不允许访问该目录3.在该目录下新建的文件会自动属于stooges组拥有 useradd curly useradd larry useradd moe groupadd stooges echo "password" |passwd --stdin moe echo "password" |passwd --stdin larry echo "password" |passwd --stdin curry gpasswd -a larry stooges gpasswd -a moe stooges gpasswd -a curly stooges mkdir /home/stooges chmod 770 /home/stooges chown .stooges /home/stooges chmod g+s /home/stooges 转xuliangwei.com
2023年11月01日
21 阅读
0 评论
0 点赞
2023-11-01
Linux系统基本权限
Linux中的文件或目录的权限和用户及用户组关联很大,Linux中每个文件或目录都有一组共9个基础权限位,每三个字符被分为一组,他们分别是属主权限位(占三个字符)、属组权限位(占三个字符)、其他用户权限位(占三个字符)比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User)、属组(Group)、其他用户(Other)基础权限。用户对资源来说, 有三种角色User(u): 属主用户(文件所有者)Group(g): 属组用户(包含组成员)Other(o): 匿名用户(其他人)//一个用户访问文件流程如下判断用户是否为文件的所有者,如果是,按所有者的权限进行访问判断是否为文件的所有组成员,如果是,就按组的权限去访问最终用户就是文件的其他的人,按其他人的权限去访问rwx, rwx, r-xUser Group Other权限与属主属组文件权限对应表 字母 含义 对应权限 r(read) 读取权限 4 w(write) 写入权限 2 x(execute) 执行权限 1 -(没有权限) 没有权限 0 如果权限位不可读、不可写、不可执行,则用-来表示。权限与属主属组作用示例图chown: Linux中用来改变某个文件属主的命令, 如漫画中所示, 将某个"资源"(门)的访问权限给予别人。(卖房)chmod: Linux中用来改变某个文件的访问模式的命令, 如漫画中所示, chmod 777会将大门敞开, 谁都可以进出。(租房)1.权限修改命令chmodchmod //修改文件目录权限rwx -R级联修改 mkdir dir //建立目录 touch dir/file //建立文件 示例1: chmod 777 dir/ //修改dir目录权限为777 chmod u+rwx,g+rwx,o+rwx 示例2: chmod 666 dir/file //修改file文件权限为666 chmod u+rw,g+rw,o+rw 示例3: chmod -R 766 dir/ //修改目录及子目录权限 2.属主属组修改命令chownchown mkdir dir touch dir/file_test mkdir dir/dir_test 示例1: chown bin dir/ ll -d dir/ drwxr-xr-x 2 bin root 4096 7月 22 00:50 dir/ 示例2: chown .adm dir/ ll -d dir/ drwxr-xr-x 2 bin adm 4096 7月 22 00:50 dir/ 示例3: chown -R root.root dir/ 3.基础权限设置案例 权限 对文件的影响 对目录的影响 读取权限(r) 具有读取\阅读文件内容权限 具有浏览目录及子目录 写入权限(w) 具有新增、修改文件内容的权限 具有增加和删除目录内文件 执行权限(x) 具有执行文件的权限 具有访问目录的内容(取决于目录中文件权限) 文件权限实验案例://默认文件匿名用户仅有读权限 [root@xuliangwei ~] [root@xuliangwei ~] -rw-r--r-- 1 root root 5 Jan 24 08:24 filename //测试读权限(无法执行或删除) [root@xuliangwei ~] [bgx@xuliangwei ~]$ cat /root/filename date //增加x执行权限 [root@xuliangwei ~] [root@xuliangwei ~] -rw-r--r-x 1 root root 5 Jan 24 08:24 /root/filename //测试执行权限 [bgx@xuliangwei ~]$ /root/filename Wed Jan 24 08:28:34 EST 2018 //增加w执行权限 [root@xuliangwei ~] [root@xuliangwei ~] -rw-r--rwx 1 root root 5 Jan 24 08:24 /root/filename //测试执行权限 [bgx@xuliangwei ~]$ vim /root/filename rwx对文件的影响读取权限(r)文件只有r权限: 具有读取\阅读文件内容权限1.能使用查看类命令cat、head、tail、less、more2.不能复制、不能移动、不能编辑,不能删除写入权限(w)如果文件只有w权限: 具有新增、修改文件内容的权限1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容2.使用echo、cat命令重定向或追加重定向技术可以往文件内写入数据3.不能复制、不能移动、不能删除,(删除需要看上级目录w的权限)执行权限(x)文件只有x权限,具有执行文件的权限。//注意: 普通用户需要有r权限,管理员不需要1.不能执行、查看、编辑、复制、移动、删除目录权限实验案例:实战案例1: 对目录没有w,对文件有rwx [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] drwxr-xr-x 2 root root 22 Jan 24 08:40 /dirname/ [root@xuliangwei ~] -rwxrwxrwx 1 root root 5 Jan 24 08:41 /dirname/filename //普通用户验证权限 [bgx@xuliangwei ~]$ cat /dirname/filename test [bgx@xuliangwei ~]$ rm -f /dirname/filename rm: cannot remove ‘/dirname/filename’: Permission denied 实战案例2: 对目录有w,对文件没有任何权限 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] drwxrwxrwx 2 root root 22 Jan 24 08:40 /dirname/ [root@xuliangwei ~] ---------- 1 root root 5 Jan 24 08:41 /dirname/filename file_xuliangwei//普通用户验证权限 [bgx@xuliangwei ~]$ cat /dirname/filename cat: /dirname/filename: Permission denied [bgx@xuliangwei ~]$ rm -f /dirname/filename [bgx@xuliangwei ~]$ touch /dirname/filename_2 rwx对目录的影响目录只有r权限: 具有浏览目录及子目录权限1.能使用ls命令浏览目录及子目录, 同时会提示权限拒绝2.能使用ls -l命令浏览目录及子目录, 会带问号,同时只能看到文件名总结: 目录只有r权限,仅仅只能浏览内的文件名,无其他操作权限写入权限(w)如果目录只有w权限: 具有增加、删除或修改目录内文件名权限(需要x配合)//注意: 如果目录有w权限, 可以在目录内创建文件, 删除文件(跟文件本身权限无关)不能进入目录、不能复制目录、不能删除目录、不能移动目录执行权限(x)目录只有x权限1.只能进入目录2.不能浏览、复制、移动、删除权限小结:文件rw权限, 可以查看和编辑文件内容文件rx权限, 只能查看和执行文件、不能编辑、复制、移动、删除目录rx权限, 允许浏览目录内文件以及子目录、并允许在目录内新建文件, 不允许创建、删除文件和目录注意事项:文件, x权限小心给予,建议赋予r或rw即可目录, w权限小心给予,建议无特殊需求赋予rx即可实验1.创建andy,alice用户为ateam组, 用户统一使用password为密码2.要求ateam组的成员可以访问/home/ateam-text目录, 并且可以在目录下创建,删除文件, 在目录下andy创建的文件可以让alice修改.转 xuliangwei.com
2023年11月01日
18 阅读
0 评论
0 点赞
2023-11-01
Linux系统用户管理
1.用户基本概述Linux用户属于多用户操作系统,在windows中,可以创建多个用户,但不允许同一时间多个用户进行系统登陆,但是Linux可以同时支持多个用户同时登陆操作系统,登陆后互相之间并不影响。用户和组存在的意义 1.系统上的每一个进程(运行的程序)都需要特定的用户运行 2.每一个文件都有特定的用户拥有 3.访问一个文件或目录受到用户的限制 4.进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关 查看当前登录的用户信息[root@xuliangwei-node1 /] uid=0(root) gid=0(root) groups=0(root) 用户分类0 超级管理员(拥有最高权限)1-200 系统用户,由系统分配给系统进程使用201-999 系统用户,用来运行服务账户,不需要登陆系统(动态分配)1000+ 常规普通用户注意: 在CentOS7系统之前, UID1-499用于系统用户, 而UID 500+则用于普通用户。组的类别基本组 优先使用基本组, 用户只能属于一个基本组, 用户默认基本组附加组 基本组不能满足授权要求, 创建附加组, 用户可以属于多个附加组私有组 私有组, 创建用户时如果没有指定基本组, 系统会创建和用户同名的组用户相关配置文件用户的信息存放在/etc/passwd用户的密码都保存在/etc/shadow这两个文件是linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出问题,会导致无法正常登录linux系统。/etc/passwd 账户文件[root@node1 ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash 字段名称 注释说明 1.用户名称 2.密码占位符 3.用户的UID 4.用户基本组GID 5.用户注释 6.用户家目录 7.用户登录Shell /etc/shadow 用户密码文件[root@xuliangwei ~]# tail -1 /etc/shadow bgx1:!!:16312:0:99999:7::: 字段名称 注释说明 1.用户登陆名 2.加密后的密码 3.最近一次密码更改时间 4.密码最少使用几天 5.密码最长使用几天 6.密码到期前警告期限 7.密码到期后保持活动的天数 8.账户到期时间 9.标志 按照图配置用户相关属性使用chage更改用户密码密码使用情况-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码 -m //设置用户两次改变密码之间使用"最小天数" -M //设置用户两次改变密码之间使用"最大天数" -W //设置密码更改警告时间 将过期警告天数设为“警告天数” -I //设置密码过期天数后, 密码为失效状态 -E //设置用户过期时间, 账户失效后无法登陆 -l //显示用户信息 //修改时间为2014年08月31日,和图中时间匹配,方便后续验证 [root@xuliangwei ~] Sun Aug 31 00:00:00 CST 2014 [root@xuliangwei ~] Sun Aug 31 00:00:01 CST 2014 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16312:0:99999:7::: //设置最近一次修改密码时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:0:99999:7::: //设置最短使用密码时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:99999:7::: //设置密码最长使用时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:15:7::: //设置密码警告时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:15:6::: [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:15:7::: //设置密码过期时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:15:6:5:: //设置用户过期时间 [root@xuliangwei ~] [root@xuliangwei ~] bgx1:!!:16314:2:15:6:5:6627567: [root@xuliangwei ~] Last password change : Sep 01, 2014 //最近一次更改密码时间 Password expires : Sep 16, 2014 //密码过期时间 Password inactive : Sep 21, 2014 //密码失效时间 Account expires : Aug 31, 2015 //用户失效时间 Minimum number of days between password change : 2 //密码最短使用时间 Maximum number of days between password change : 15 //密码最长使用时间 Number of days of warning before password expires : 7 //密码过期前警告天数 //如何验证,只调整时间为如下进行验证: 1.验证普通用户是否能修改密码, 不需要调整时间。 2.普通用户登陆系统后, 会提示警告密码还剩多少天过期 [root@xuliangwei ~] 3.普通用户登陆系统后, 强制要求修改密码 [root@xuliangwei ~] 4.普通用户登陆系统后, 提示账户已过期 [root@xuliangwei ~] 1.1 用户相关的命令添加用户前需要确定确定用户的默认组是否有特殊要求确定用户是否允许登陆确定用户的密码策略确定用户的有效期确定用户的uid是否有特殊要求1.使用useradd命令新增用户, 注意: adduser命令软链接指向useradd命令'-u' 指定用户的UID,不能和现有ID冲突 '-g' 指定用户用户默认基本组 '-G' 指定用户附加组,用逗号隔开添加多个附加组 '-d' 指定用户家目录 '-c' 指定用户注释信息 '-M' 不建立家目录 '-s' 指定用户默认shell '-r' 创建系统账户, 没有家目录 //创建bgx用户,指定UID5001,基本组students 附加组sa,dba 注释信息:2018 new student, 登陆的shell:/bin/bash [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] bgx:x:5001:505:2017 new student:/home/bgx:/bin/bash //创建系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统 [root@node1 ~] [root@node1 ~] 2.使用usermod命令修改用户组'-u' 修改用户的UID '-g' 修改用户所属的基本组GID '-G' 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组 '-a' 追加更多的附加组, 必须和-G使用: -aG 追加附加组 '-m' 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置 '-d' 指定用户的家目录新位置 '-c' 修改用户的注释信息 '-s' 更改用户使用的shell '-l' 更改用户登录名 '-L' 锁定用户 '-U' 解锁用户 [root@xuliangwei ~] bgx:x:5001:505:2018 new student:/home/bgx:/bin/bash //修改用户uid,gid, 附加组, 注释信息, 用户家目录, 登录shell, 登录名 //建立组,指定组gid [root@xuliangwei ~] [root@xuliangwei ~] //修改用户属性 [root@xuliangwei ~] //检查是否修改成功 [root@xuliangwei ~] bgx_xuliangwei:x:6001:5008:2019 new student:/bgx:/bin/sh [root@xuliangwei ~] uid=6001(bgx_xuliangwei) gid=5008(network_sa) groups=5008(network_sa),503(sa),504(dba),5009(devops) //验证家目录 [root@xuliangwei ~] drwx------. 2 bgx_xuliangwei network_sa 4096 2014-09-23 00:13 /bgx 锁定用户 [root@xuliangwei ~] [root@xuliangwei ~] //无法正常登录系统 ➜ ~ ssh bgx_xuliangwei@192.168.56.11 bgx_xuliangwei@192.168.56.11's password: Permission denied, please try again. 解锁用户 [root@xuliangwei ~]# usermod -U bgx_xuliangwei //正常登录系统 ➜ ~ ssh bgx_xuliangwei@192.168.56.11 bgx_xuliangwei@192.168.56.11's password: Welcome to Aliyun Esc Linux -sh-4.1$ 3.使用finger命名查询用户信息以及登录信息//安装finger命令 [root@xuliangwei ~]# yum install finger -y [root@xuliangwei ~]# finger bgx_xuliangwei Login: bgx_xuliangwei Name: 2019 new student Directory: /bgx Shell: /bin/sh On since Tue Sep 23 01:33 (CST) on pts/1 from 192.168.56.2 5 minutes 4 seconds idle No mail. No Plan. 4.使用chfn修改用户信息[root@xuliangwei ~] Changing finger information for bgx_xuliangwei. Name [2019 new student]: 2020 new student Office []: 110 Office Phone []: 89270000 Home Phone []: 15210xxxxxx //使用finger再次检查 [root@xuliangwei ~] Login: bgx_xuliangwei Name: 2020 new student Directory: /bgx Shell: /bin/sh Office: 110, 89270000 Home Phone: 15210xxxxxx On since Tue Sep 23 01:33 (CST) on pts/1 from 192.168.56.2 6 minutes 49 seconds idle No mail. No Plan. 5.使用chsh命令更改用户登录shell[root@xuliangwei ~]# chsh bgx_xuliangwei Changing shell for bgx_xuliangwei. New shell [/bin/sh]: /bin/bash Shell changed. [root@xuliangwei ~]# grep "bgx_xuliangwei" /etc/passwd bgx_xuliangwei:x:6001:5008:2020 new student,110,89270000,15210xxxxxx:/bgx:/bin/bash 6.检查用户登陆情况[root@xuliangwei ~] xuliangwei pts/0 2017-10-30 09:30 (192.168.56.2) bgx_xuliangwei pts/1 2014-09-23 01:33 (192.168.56.2) root pts/2 2017-10-30 07:13 (192.168.56.2) [root@xuliangwei ~] 01:43:18 up 1 day, 15:00, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT xuliangw pts/0 192.168.56.2 09:30 ? 0.35s 0.18s sshd: xu bgx_xuli pts/1 192.168.56.2 01:33 9:24 0.03s 0.00s bash root pts/2 192.168.56.2 07:13 0.00s 1.49s 0.08s w 7.使用userdel删除账户语法 : userdel [-r] username //-r 同时删除家目录 [root@xuliangwei ~] [root@xuliangwei ~] drwx------. 3 501 501 4096 2017-11-15 12:40 /home/user1/ //连同家目录一起删除 [root@xuliangwei ~] 1.2 用户创建的原理Linux创建用户默认会读取/etc/defaults/useradd的配置文件,如果当我指定参数时,使用指定参数,如果不指定参数,默认使用/etc/defaults/useradd中的配置。当我们使用useradd命令新建用户时,用户家目录下会产生相应的.bash_*文件,这些文件默认是从/etc/skel目录中复制。如需变更环境拷贝目录站点可修改:/etc/defaults/useradd的配置文件。注意:如果执行useradd命令新建用户时,指定了参数,就会覆盖/etc/default/useradd默认的配置。[root@student ~] MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 UID_MIN 1000 UID_MAX 60000 SYS_UID_MIN 201 SYS_UID_MAX 999 GID_MIN 1000 GID_MAX 60000 SYS_GID_MIN 201 SYS_GID_MAX 999 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512 [root@student ~] GROUP=100 HOME=/home //把用户的家目录建在/home中。 INACTIVE=-1 //是否启用账号过期停权,-1表示不启用。 EXPIRE= //账号终止日期,不设置表示不启用。 SHELL=/bin/bash //新用户默认所有的shell类型。 SKEL=/etc/skel //配置新用户家目录的默认文件存放路径。 CREATE_MAIL_SPOOL=yes //创建mail文件。 //用户登录linux操作系统,环境变量被误删,出现-bash-4.1$,如何解决! -bash-4.1$ cp -a /etc/skel/.bash* ./ -bash-4.1$ exit [root@student ~] [xuliangwei@student ~]$ 2. 用户密码管理创建完账户后,默认是没有设置密码的,所以该账户是没有办法登陆操作系统。只有使用passwd设置好密码后方可登录系统。使用passwd为用户创建密码时,为了安全起见,请尽量设置复杂一些。可以按照如下规则设置密码:1.密码的长度最好大于10位字符2.密码中包含大小写字母数字以及特殊字符 ! @ # $3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)需要注意:1.普通用户只能更改自己的密码(密码必须满足8位字符)2.管理员用户能更改任何人的密码(密码长度无限制)1.使用passwd命令修改用户密码语法: passwd [username] [root@localhost ~]# passwd 更改用户 root 的密码。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# passwd xuliangwei 更改用户 xuliangwei 的密码 新的 密码: 重新输入新的 密码: passwd: 所有的身份验证令牌已经成功更新。 [bgx_xuliangwei@xuliangwei ~]$ passwd root passwd: Only root can specify a user name. [root@xuliangwei ~]# echo "123" | passwd --stdin xuliangwei Changing password for user xuliangwei. passwd: all authentication tokens updated successfully. 2.随机复杂密码生成的方式//1.系统内置变量生成随机密码 [root@node1 ~] d09fe9b1xs [root@node1 ~] //2.mkpasswd密码生成工具, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符 [root@xuliangwei ~] [root@xuliangwei ~] |K&13bR)i/ 3.推荐密码保存工具客户端,支持windows、MacOS、Iphone以及浏览器插件Lastpass官方网站3.组的基本管理组账户信息保存在/etc/group和/etc/gshadow两个文件中。/etc/group 组账户信息[root@node1 ~] root:x:0: bin:x:1:bin,daemon // /etc/group由':' 分割, 分割为4个字段,每个字段的具体含义如下: 字段名称 1.组的名称 2.组的密码(存在/etc/gshadow) 3.组GID信息 4.仅显示附加成员,基本成员不显示 /etc/gshadow 组密码信息[root@node1 ~]# head -2 /etc/gshadow root::: bin:::bin,daemon 字段名称 1.组名称 2.组密码 3.组管理员 4.仅显示附加成员,基本成员不显示 1.使用groupadd命令新增组groupadd [-g GID] groupname//创建基本组, 不指定gid [root@node1 ~] [root@node1 ~] no_gid:x:1000: //创建基本组, 指定gid为5555 [root@node1 ~] [root@node1 ~] yes_gid:x:5555: //创建系统组,gid从201-999 [root@xuliangwei ~] [root@xuliangwei ~] sys_group:x:990: 2.使用groupmod命令新增组//-g 修改组gid [root@xuliangwei ~] [root@xuliangwei ~] no_gid:x:1111: //-n 修改组名称 [root@xuliangwei ~] [root@xuliangwei ~] active_group:x:5555: 3.使用groupdel删除组该命令没有特殊选项,如果一个用户有基本组和附加组,只能删除附加组,不能删除基本组 [root@xuliangwei ~] [root@docker ~] uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei),5004(devops) [root@docker ~] [root@docker ~] uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei) [root@xuliangwei ~] network_sa:x:5008: [root@xuliangwei ~] groupdel: cannot remove the primary group of user 'bgx_xuliangwei' 4.使用gpasswd设置组密码[root@xuliangwei ~] [root@xuliangwei ~] Changing the password for group devops New Password: Re-enter new password: 5.使用newgrp命令切换基本组身份 [root@docker ~]# useradd xuliangwei [root@docker ~]# id xuliangwei uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei) [root@docker ~]# su - xuliangwei [xuliangwei@docker ~]$ touch file_roots [xuliangwei@docker ~]$ ll -rw-rw-r-- 1 xuliangwei xuliangwei 0 Jun 13 10:06 file_roots [xuliangwei@docker ~]$ newgrp devops Password: [xuliangwei@docker ~]$ touch file_test [xuliangwei@docker ~]$ ll total 0 -rw-rw-r-- 1 xuliangwei xuliangwei 0 Jun 13 10:06 file_roots -rw-r--r-- 1 xuliangwei devops 0 Jun 13 10:08 file_test 4.用户身份切换Linux系统中,有时候普通用户有些事情是没办法操作,除非是root管理员用户才能做到。这时就需要临时切换到root管理员身份来做事了。那么在学习如何切换用户之前,我们先来了解下用户工作环境。1.Shell分类交互式shell 非交互式shell 登陆shell 非登陆shell [root@xuliangwei ~]# pstree [root@xuliangwei ~]# export PS1='[\h@\u \t]#' [xuliangwei@root 02:06:28]# 2.bash shell配置文件Bash的配置文件保存用户的工作环境 个人配置文件: ~/.bash_profile ~/.bashrc 全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc profile类文件, 设定环境变量, 登陆前运行的脚本和命令 bashrc 类文件, 设定本地变量, 定义命令别名 全局配置和个人配置设置冲突, 优先使用个人配置准 3.shell配置文件应用顺序//登录式shell配置文件执行顺序 /etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc //非登陆式shell配置文件执行顺序 ~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh 4.如果全局配置和个人配置出现冲突, 那么如何验证呢?编辑全局配置 /etc/profile 新增一行: PS1='[\h@\u \t]#' [xuliangwei@root 02:16:57] 编辑个人配置 ~/.bash_profile 新增一行: PS1='[\u@\H]#' [xuliangwei@root 02:18:27] [bgx_xuliangwei@xuliangwei root]$ [xuliangwei@root 02:18:34] [bgx_xuliangwei@xuliangwei.com] 5.创建用户,并登录系统[root@node1 ~]# useradd xuliangwei [root@node1 ~]# echo "123"|passwd --stdin xuliangwei //使用xuliangwei用户登录当前Linux系统 ➜ ~ ssh xuliangwei@192.168.56.111 xuliangwei@192.168.56.111's password: [xuliangwei@node1 ~]$ //可以使用whoami查看当前登录用户 [xuliangwei@node1 ~]$ whoami xuliangwei 6.切换用户,使用命令su [-] usernamesu命令后面跟-代表进入登陆式shell 如果su命令后不加-代表进入非登陆式shell,他们之间的区别在于加载的环境变量不一样。普通用户su -代表直接切换至root用户身份, 但需要输入root用户密码。超级管理员root用户使用su - username切换普通用户不需要输入任何密码。[xuliangwei@node1 ~]$ pwd /home/xuliangwei //不加 '-' 切换到root账户下时,当前目录没有变化 [xuliangwei@node1 ~]$ su 密码: [root@node1 xuliangwei] /home/xuliangwei [root@node1 xuliangwei] exit //加 '-'切换到root账户,当前目录为root账户的家目录。 [xuliangwei@node1 ~]$ su - 密码: [root@node1 ~] /root 3.以某个用户的身份执行某个服务,使用命令su -c username[root@xuliangwei ~] [root@xuliangwei ~] 5.用户身份提权su命令在切换用户身份时,如果每个普通用户都能拿到root用户的密码,当其中某个用户不小心泄漏了root的密码,那系统会变得非常不安全。为了改进这个问题,从而产生了sudo这个命令。sudo执行一个仅有root身份才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo需要root预先设定,即使用 visudo命令去编辑相关的配置文件/etc/sudoersCentos7提权[root@node1 ~] //日志审计 [root@node1 ~]$ sudo tail -f /var/log/secure CentOS6提权 [root@xuliangwei ~] [root@xuliangwei ~] xuliangwei ALL=(ALL) /bin/rm, /bin/cp 1.用户名 2.主机名 3.角色名 4.命令名 root ALL= (ALL) ALL xuliangwei ALL 使用最高角色执行 /bin/rm, /bin/cp xuliangwei ALL=(ALL) NOPASSWD:/bin/cp, /bin/rm //不需要密码使用rm、cp命令 [root@xuliangwei ~] /etc/sudoers: parsed OK 4.普通用户验证sudo权限 [root@xuliangwei ~] [xuliangwei@xuliangwei ~]$ sudo -l ... User xuliangwei may run the following commands on this host: (ALL) /bin/rm, (ALL) /bin/cp [xuliangwei@xuliangwei ~]$ rm -rf /opt/ rm: cannot remove `/opt': Permission denied #4.使用sudo提权,验证用户权限是否可用,需要输入普通用户的密码 [xuliangwei@xuliangwei ~]$ sudo rm -rf /opt 5.sudo免密码配置选项 [root@xuliangwei ~] xuliangwei ALL=(ALL) /bin/rm, /bin/cp xuliangwei ALL=(ALL) NOPASSWD:/bin/rm, /bin/cp [xuliangwei@xuliangwei ~]$ rm -f /root/002 rm: cannot remove `/root/002': Permission denied #3.验证sudo免密码执行权限 [xuliangwei@xuliangwei ~]$ sudo rm -f /root/002 6.sudo配置组//如果每增加一个用户需配置一行sudo,这样设置非常麻烦。所以可以进行如下设置 %gbx ALL=(ALL) NOPASSWD:/bin/rm, /bin/cp //group1这个组的所有用户都拥有sudo的权力。接下来只需要将用户加入该组即可。 //创建用户加入该组 [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] //root用户建立目录 [root@xuliangwei ~] //切换用户并删除测试 [root@node1 ~] [bgx1@xuliangwei ~]$ rm -rf /root/bgx_sudo rm: cannot remove `/root/bgx_sudo': Permission denied //使用sudo [bgx1@xuliangwei ~]$ sudo rm -rf /root/bgx_sudo 当然配置文件/etc/sudoers包含了诸多配置项,可以使用命令man sudoers来获得帮助信息。下面介绍一个很实用的案例,我们的需求是将Linux服务器设置成如下:1.仅允许使用普通账户登陆Linux服务器,禁止root直接登录2.可以让普通用户不输入密码就能sudo su -切换到root账户//禁止root用户登陆 [root@xuliangwei ~] [root@xuliangwei ~] //配置sudo权限 [root@xuliangwei ~] User_Alias USER_SU = bgx1,bgx2,xuliangwei Cmnd_Alias SU = /bin/su USER_SU ALL=(ALL) NOPASSWD:SU //使用root登陆服务器失败 ➜ ~ ssh root@192.168.56.11 root@192.168.56.11's password: Permission denied, please try again. //使用普通用户登陆服务器 ➜ ~ ssh xuliangwei@192.168.56.11 xuliangwei@192.168.56.11's password: Last login: Mon Oct 30 09:28:21 2017 from 192.168.56.2 //使用sudo提权至root用户 [xuliangwei@xuliangwei ~]$ sudo su - [root@xuliangwei ~] 7.sudo执行流程:1.普通用户执行sudo命令, 会检查/var/db/sudo是否存在时间戳缓存2.如果存在则不需要输入密码, 否则需要输入用户与密码3.输入密码会检测是否该用户是否拥有该权限4.如果有则执行,否则报错退出6.日志相关审计通过sudo和syslog配合实现对所有用户进行权限的日志审计并将记录日志集中管理,实施后让所有运维和开发执行的sudo命令都有记录可查,杜绝了内部人员的操作安全隐患。sudo日志审计,专门针对sudo命令的系统用户记录其执行的命令相关信息,所谓sudo命令日志审计,并不记录普通用户的操作,而是记录执行sudo命令的用户操作。1.安装sudo、rysylog[root@node1 ~] //检测是否安装成功 [root@node1 ~] rsyslog-5.8.10-10.el6_6.x86_64 sudo-1.8.6p3-19.el6.x86_64 2.配置/etc/sudoers记录日志路径[root@node1 ~] //查看追加的日志配置 [root@node1 ~] Defaults logfile=/var/log/sudo.log //检查语法 [root@node1 ~] /etc/sudoers: parsed OK 3.配置rsyslog日志服务[root@node1 ~] //重启rsyslog服务 [root@node1 ~] Shutting down system logger: [ OK ] Starting system logger: [ OK ] 4.普通用户使用sudo权限验证日志记录//使用普通执行sudo命令 [xuliangwei@node1 ~]$ rm -rf /root/test/ rm: 无法删除"/root/test": 权限不够 [xuliangwei@node1 ~]$ sudo rm -rf /root/test/ //检查用户在什么时间执行过什么操作 [xuliangwei@node1 ~]$ cat /var/log/sudo.log Nov 7 07:56:58 : xuliangwei : TTY=pts/1 ; PWD=/home/xuliangwei ; USER=root ; COMMAND=/bin/rm -rf /root/test/ 转 xuliangwei.com
2023年11月01日
30 阅读
0 评论
0 点赞
2023-11-01
Linux系统文件属性
1.Linux系统文件属性-rw -rw 1 ②:硬链接次数 root ③:所属用户 root ④:所属组 4434 ⑤:文件大小 May30 13:58 ⑥⑦⑧:最新修改的时间与日期 ks.cfg ⑨:文件或目录名称 2.Linux系统文件类型通过颜色或者后缀判断文件类型不一定准确.ls -l 文件名 格式 说明 - 普通文件(文本, 二进制, 压缩, 图片, 日志等) d 目录文件 b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2 c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero s 套接字文件, 进程间通信(socket) p 管道文件 l 链接文件 [root@xuliangwei ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client -rwxr-xr-x. 1 root root 117656 Jun 30 2016 /bin/ls srw-rw-rw-. 1 root root 0 Jan 20 10:35 /dev/log brw-rw----. 1 root disk 8, 0 Jan 20 10:36 /dev/sda crw--w----. 1 root tty 4, 1 Jan 20 10:36 /dev/tty1 lrwxrwxrwx. 1 root root 22 Jan 13 11:31 /etc/grub2.cfg -> ../boot/grub2/grub.cfg -rw-r--r--. 1 root root 199 Jan 20 11:03 /etc/hosts prw-------. 1 root root 0 Jan 20 10:36 /run/dmeventd-client drwxrwxrwt. 61 root root 8192 Jan 21 13:01 /tmp 2.查看文件类型命令file[root@xuliangwei ~] /etc/hosts: ASCII text [root@xuliangwei ~] /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped [root@xuliangwei ~] /dev/sda: block special [root@xuliangwei ~] /dev/tty1: character special [root@xuliangwei ~] /etc/grub2.cfg: broken symbolic link to `../boot/grub2/grub.cfg' [root@xuliangwei ~] /home: directory [root@xuliangwei ~] /run/dmeventd-client: fifo (named pipe) 注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别3.Linux系统链接文件3.1软链接Linux里的软链接文件类似于Windows系统中的 ”快捷键方式“ 里面具体存放的是源文件的路径,并指向源文件实体,因此通过访问这个 ”快捷方式“ 可迅速访问到源文件。软链接文件类型是l我们只需要执行命令ln -s 源文件 目标软链接文件完成软链接创建。注意:软链接和源文件是不同类型的文件,所以inode也不同。 touch /root/file ln -s /root/file /tmp/file_bak ll /tmp/file_bak mkdir /soft/nginx1.1 -p ln -s /soft/nginx1.1/ /soft/nginx ll /soft/nginx 生产软链接作用1.软件升级2.企业代码发布3.不方便目录移动3.2硬链接Linux文件系统中, 多个文件名指向同一个索引节点Inode是正常且允许的(文件的多个有效的入口),这种情况的文件称为硬链接。通过执行ln 源文件 硬链接文件给文件设置硬链接,来防止重要文件被误删。注意:目录不能创建硬链接,硬链接文件可以用rm命令删除 ln /root/file /tmp/file_hard ll /tmp/file_hard 3.3软硬链接区别Linux下软链接和硬链接的区别1)ln命令创建硬链接,ln -s命令创建软链接。2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。3)目录软链接特别常用,并且软链接支持跨越分区系统。4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。5)删除软链接文件,对源文件及硬链接文件无任何影响。6)删除文件的硬链接文件,对源文件及链接文件无任何影响。7)删除链接文件的源文件,对硬链接无影响,会导致软链接失效。8)删除源文件及其硬链接文件,整个文件会被真正的删除。转 xuliangwei.com
2023年11月01日
37 阅读
0 评论
0 点赞
2023-11-01
Linux系统压缩打包
windows下我们接触最多的压缩文件就是.rar格式, 但Linux有自己所特有的压缩工具。如果希望windows和Linux互相能使用的压缩工具, 建议.zip格式压缩的好处主要有:节省磁盘空间占用率节省网络传输带宽消耗网络传输更加快捷Linux系统常见的后缀名所对应的压缩工具.gz gzip //压缩工具压缩的文件.bz2 bzip2 //压缩工具压缩的文件.tar tar //tar没有压缩功能,只是把一个目录合并成一个文件.tar.gz //先使用tar打包,然后使用gzip压缩归档.tar.bz2 //先使用tar打包,然后使用bzip压缩归档注意:1.Linux下常用压缩文件以.tar.gz结尾.2.Linux下压缩文件必须带后缀.1.ZIP压缩工具zip是压缩工具,unzip是解压缩工具 [root@xuliangwei ~]# zip filename.zip filename [root@xuliangwei ~]# zip -r dir.zip dir/ [root@xuliangwei ~]# unzip filename.zip 2.TAR压缩工具tar是linux下最常用的压缩与解压缩, 支持文件和目录的压缩归档语法:tar [-zjxcvfpP] filename c x t v f C z j J X h --hard-dereference --exclude czf cjf cJf zxf jxf xf tf 1.将文件或目录进行打包压缩 tar czf test.tar.gz test/ test2/ tar cjf test.tar.bz2 dir.txt dir/ [root@xuliangwei ~]# cd / [root@xuliangwei /]# tar czfh local.tar.gz etc/rc.local [root@xuliangwei ~]# cd / [root@xuliangwei /]# find tmp/ -type f | xargs tar czf tmp.tar.gz [root@xuliangwei /]# tar czf tmp.tar.gz | xargs find tmp/ -type f [root@xuliangwei /]# tar czf tmp.tar.gz $(find tmp/ -type f) 2.排除文件, 并打包压缩//排除单个文件 [root@xuliangwei /] //排除多个文件 [root@xuliangwei /] //将需要排除的文件写入文件中 [root@xuliangwei /] etc/services etc/rc.local etc/rc.d/rc.local //指定需要排除的文件列表, 最后进行打包压缩 [root@xuliangwei /] 3.查看压缩文件 [root@xuliangwei /]# tar tf test.tar.gz 4.解压缩文件 [root@xuliangwei /]# tar xf test.tar.gz [root@student ~]# tar xf /etc/local.tar.gz -C /tmp 注意: 不管是打包还是解包,原文件是不会被删除的,但会覆盖当前已经存在的文件或者目录。3.TAR实践案例基础环境准备[root@localhost ~] [root@localhost ~] [root@localhost ~] 案例1 mysql物理备份及恢复[root@localhost ~] [root@localhost ~] 案例2 mysql物理备份及恢复[root@localhost ~] [root@localhost mysql] [root@localhost mysql] [root@localhost mysql] 案例3 host A /etc (海量小文件) --> host A /tmp[root@localhost ~] 案例4 host A /etc (海量小文件) --> host B /tmp//常规方法 [root@localhost ~] //建议方法: //接收B主机, 需要监听端口 [root@hostB ~] [root@hostB ~] //发送方A主机 [root@hostA ~] tar: Removing leading `/' from member names 转 xuliangwei.com
2023年11月01日
46 阅读
0 评论
0 点赞
2023-11-01
VIM基本介绍
vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。vim其实是vi的升级版那么vi与vim有什么区别?vi不显示高亮颜色语法vim显示高亮颜色语法。其他功能没有什么区别。所以在linux系统下,使用vi还是vim取决个人习惯。如果在刚装完的CentOS操作系统下没有vim这个命令,用如下方式进行安装即可yum install -y vim-enhanced VIM模式介绍Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。图1-1命令模式: 控制光标移动, 可对文本进行复制、粘贴、删除等工作。使用vim filename 编辑一个文件时,一进入该文件就是命令模式了。在这个模式下,可以进行光标移动、复制、删除、粘贴操作。编辑模式: 正常的文本写入。从命令模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT的字样。从编辑模式回到命令模式只需要按键盘左上方的 ESC 键即可。末行模式: 保存或退出文档,以及设置编辑环境在命令模式下,输入 ":" 或者 "/" 即可进入末行模式。在该模式下,可以进行的操作有,显示行号、搜索、替换、保存、退出。vim编辑器配置文件整体流程如下:1.默认打开文件处于命令模式2.需要从命令模式切换至编辑模式3.编辑模式修改配置文件, 然后返回命令行模式.4.最后通过命令模式进入末行模式,保存和退出操作.注意:在vim中,无法直接从编辑模式切换到末行模式。VIM命令模式命令行模式:(默认打开文件进入的是命令行模式) G 跳转光标至末端 gg 跳转光标至顶端 Ngg 跳转光标至当前文件内的22行 $ 将当前光标跳转至光标所在行的末端(尾部) ^ 将当前光标跳转至光标所在行的头部 —> 数字0 可实现类似效果 ctrl+f 往下翻页(行比较多) ctrl+b 往上翻页 yy复制当前光标所在的行 5yy复制当前光标以及光标向下4行 p(小写) 粘贴至当前光标下一行 P(大写) 粘贴至当前光标上一行 dd 删除当前光标所在的行 4dd 删除当前光标所在的行以及往下的3行 dG 删除当前光标以后的所有行 D 删除当前光标及光标以后的内容 x 删除当前光标标记往后的字符 X 删除当前光标标记往前的字符 先删除dd(number dd),后粘贴p u 撤销上一次的操作(类似windows下的ctrl+z) r 替换当前光标标记的单个字符 R 进入REPLACE模式, 连续替换,ESC结束 VIM编辑模式编辑模式(从命令行模式进入到编辑模式)i 进入编辑模式,光标不做任何操作 I 进入编辑模式,并且光标会跳转至本行的头部 a 进入编辑模式,将当前光标往后一位 A 进入编辑模式,将光标移动至本行的尾部 o 进入编辑模式,并在当前光标下添加一行空白内容 O 进入编辑模式,并在当前光标上添加一行空白内容 VIM末行模式末行模式主要用于搜索, 保存, 退出文件, 还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数末行模式(必须退回到命令行模式)E37: No write since last change (add ! to override) :w 保存当前状态 :w! 强制保存当前状态 :q 退出当前文档(文档必须保存才能退出) :q! 强制退出文档不会修改当前内容 :wq 先保存,在退出 :wq! 强制保存并退出 :x 先保存,在退出 ZZ 保存退出, shfit+zz :number 跳转至对应的行号 末行模式(查找和替换)查找 /string 需要搜索的内容(查找) n 按搜索到的内容依次往下进行查找 N 按搜索到的内容依次往上进行查找 替换 :1,5s :%s :%s 另存 :w /root/test 将文件所有内容另存为/root/test 读入 :r /etc/hosts 读入/etc/hosts文件至当前光标下面 :5r /etc/hosts 指定/etc/hosts文件当前文件的哪行下面 VIM视图模式视图模式(从命令行模式进入视图模式)ctrl+v 进入VISUAL BLOCK 选中需要注释的行(可视块模式) 1.插入:按shift+i进入编辑模式,输入 2.删除:选中内容后,按x或者d键删除 3.替换:选中需要替换的内容, 按下r键,然后输入替换后的内容 shift+v 进入VISUAL LINE 选中行内容(可视行模式) 1.复制:选中行内容后按y键及可复制。 2.删除:选中行内容后按d键删除。 VIM环境变量环境变量临时生效:set nu 显示行号 :set ic 忽略大小写, 在搜索的时候有用 :set ai 自动缩进 :set list 显示制表符(空行、tab键) :set no[nu|ic|ai…] 取消临时设定的变量 环境变量永久生效~/.vimrc 个人环境变量(优先级高) /etc/vimrc 全局环境变量 # vim ~/.vimrc set nu set ic VIM扩展知识1.如何同时编辑多个文件vim -o file1 file2 水平分割 vim -O file1 file2 垂直分割 2.相同文件之间差异对比diff 文件对比(用的不多) vimdiff 以vim方式打开两个文件对比,标记不同的内容 3.如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后//删除同文件名的.swp文件即可解决 .filename.swp rm -f .filename.swp 转 xuliangwei.com
2023年11月01日
33 阅读
0 评论
0 点赞
2023-11-01
Linux系统基础命令
系统目录结构几乎所有的计算机操作系统都是用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。Linux系统中也沿用了这种文件结构, 所有目录和文件都在 "根目录"下, 目录名为"/"。FHS(文件系统层次标准)定义了在根目录下的主要目录以及每个目录应该存放什么文件。/etc 系统重要配置文件, 以及常用服务配置文件 /var 存放系统引导启动时产生的可变文件,文件通常动态更改的,例如: 缓存目录,日志文件 /run 系统启动后, 运行的程序产生的运行时数据, 包括进程的pid文件,锁文件等 /home 普通用户的主目录, 普通用户的家目录默认为/HOME/USERNAME /root 超级管理员的主目录, 普通用户无权操作 /tmp 存放临时文件, 一般存放超过10天以上都会自动删除,可以更改删除临时文件的期限 /boot 存放系统引导时候需要的文件 /dev 存放设备文件 /usr 安装的软件, 共享库, 重要的子目录有 /usr/bin 用户命令目录 /usr/sbin 管理员命令目录 /usr/local 本地自定义安装的软件 /bin --> /usr/bin /sbin --> /usr/sbin lib -> usr/lib lib64 -> usr/lib64 文件路径定位路径的作用:定位文件具体位置信息你要在那里创建什么文件?你要将什么文件复制到什么地方?你要删除的文件在什么地方?1.特殊目录: (.)和(..)在每个目录下, 都会固定存在两个特殊目录, 分别是一个点(.)和两个(..)的目录。一个点代表当的是当前目录, 两个点代表的是当前目录的上层目录。注意: 在Linux下所有以点开始的文件都是"隐藏文件", 对于这类文件, 只使用命令ls -l是看不到的, 必须要使用ls -la才可以看到,如下所示:[root@xuliangwei ~] [root@xuliangwei opt] [root@xuliangwei opt] . .. 2.绝对路径:Linux系统采用了目录树的文件组织结构, 在Linux下每个目录或文件都可以从根目录处开始寻找, 比如: /usr/bin目录。这种从根目录开始的全路径被称为"绝对路径", 绝对路径一定是以 “/” 开头的。如何确认当前所在的目录, 可以使用pwd命令查看:[root@xuliangwei ~] /root 3.相对路径相对路径, 关键点在于当前在什么路径下。假设当前目录在/usr/local下, 那么它的上层目录(/usr目录)可以用../表示, 而``/usr/local的下层目录(src)则可以用./src`表示。所谓的(.)和(..)目录实际上也是属于相对路径//进入/opt目录 [root@xuliangwei ~] [root@xuliangwei opt] total 76 drwxr-xr-x. 2 root root 69632 Dec 4 11:00 . dr-xr-xr-x. 33 root root 4096 Dec 4 10:40 .. //进入当前目录 [root@xuliangwei opt] //显示当前目录 [root@xuliangwei opt] /opt //进入当前目录的上层目录 [root@xuliangwei opt] //进入上层目录,也就是/目录 [root@xuliangwei /] / cd命令常见用法:. 表示用户所处的当前目录 .. 表示上级目录; ~ 表示当前用户自己的家目录 cd - //切换上次所在目录 cd ~ //切换至当前用户家目录 cd //切换至当前用户家目录 cd . //.代表当前目录,一般在拷贝、移动等情况下使用 cd .. //切换至当前目录的上级目录 目录管理命令1.目录创建命令mkdir2.以树状显示目录结构命令tree-L: 显示目录树的层级 # tree # tree -L 1 / 文件管理命令Linux一切皆为文件, 在对Linux进行配置时, 很大程度上就是处理文件的过程, 所以掌握文件的相关操作是非常有必要的。下面我们介绍如何对文件进行, 创建、删除、移动、重命名, 以及查看文件内容, 至于如何编辑文件, 在后面具体介绍编辑器的时候在做详细阐述。1.文件创建命令touch2.文件时间stat[root@test-example ~] File: 'test.txt' Size: 2 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 67335626 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2018-01-21 12:12:48.949097044 +0800 Modify: 2018-01-21 12:12:35.243302963 +0800 Change: 2018-01-21 12:12:35.243302963 +0800 Birth: - 访问时间:atime,查看内容 修改时间:mtime,修改内容 改变时间:ctime,文件属性,比如权限 删除时间:dtime,文件被删除的时间 3.文件目录复制命令cpcp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... # cp name /tmp/name_copy # cp name /tmp/name # cp -p name /tmp/name_p # mkdir name_name # cp -r name_name/ /tmp/name_tmp # cp -rv /etc/hosts /etc/hostname /tmp # cp -rv /etc/hosts /etc/hostname ./ # cp -rv /etc/hosts /etc/hosts.bak # cp -rv /etc/{hosts,hosts.bak} # cp -rv /etc/hosts{,-org} 3.文件目录移动命令mvmv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... # mv file /tmp/ # mv file /tmp/file_test # mv dir/ /tmp/ # touch file{1..3} # mv file1 file2 file3 /opt/ # mkdir dir{1..3} # mv dir1/ dir2/ dir3/ /opt 4.文件目录删除命令rmrm [OPTION]... FILE... -r 递归 -f 强制删除 -v 详细过程 # rm anan # rm anan -f # rm -r dir/ # rm -rf dir/ # mkdir /home/dir10 # touch /home/dir10/{file2,file3,.file4} # rm -rf /home/dir10/* # ls /home/dir10/ -a . .. .file4 # touch file{1..10} # touch {1..10}.pdf # rm -rf file* # rm -rf *.pdf 文件查看命令cat 示例:cat /etc/passwd 示例:cat -n /etc/passwd 示例:cat >> xuliangwei.txt <<EOF test EOF head 示例:head /etc/passwd 示例:head -n5 /etc/passwd tail 示例:tail /etc/passwd 示例:tail -f /var/log/messages more 示例:more /etc/passwd less 示例:less /etc/passwd 文件下载命令wget -O -T -q --spider 示例:wget http: curl 示例:curl -o http: yum install lrzsz rz sz 示例:sz filename 命令查找命令locate 示例:locate /etc/sh 示例:locate -i /etc/sh which 示例:which ls whereis 示例:whereis ls 示例:whereis -b ls 字符处理命令1.使用sort排序很多情况下需要对无序的数据进行排序, 这时就需要用到sort排序了。sort [OPTION]... [FILE]... -r:倒序 -n:按数字排序 -t:指定分隔符(默认空格) -k:指定第几列, 指定几列几字符(指定1,1 3.1,3.3) [root@xuliangwei ~]# cat >> sort.txt <<EOF b:3 c:2 a:4 e:5 d:1 f:11 EOF [root@xuliangwei ~]# sort sort.txt a:4 b:3 c:2 d:1 e:5 f:11 [root@xuliangwei ~]# sort -t ":" -k2 sort.txt d:1 f:11 c:2 b:3 a:4 e:5 [root@xuliangwei ~]# sort -t ":" -n -k2 p.txt d:1 c:2 b:3 a:4 e:5 f:11 192.168.3.1 00:0F:AF:81:19:1F 192.168.3.2 00:0F:AF:85:6C:25 192.168.3.3 00:0F:AF:85:70:42 192.168.2.20 00:0F:AF:85:55:DE 192.168.2.21 00:0F:AF:85:6C:09 192.168.2.22 00:0F:AF:85:5C:41 192.168.0.151 00:0F:AF:85:6C:F6 192.168.0.152 00:0F:AF:83:1F:65 192.168.0.153 00:0F:AF:85:70:03 192.168.1.10 00:30:15:A2:3B:B6 192.168.1.11 00:30:15:A3:23:B7 192.168.1.12 00:30:15:A2:3A:A1 192.168.1.1 00:0F:AF:81:19:1F 192.168.2.2 00:0F:AF:85:6C:25 192.168.3.3 00:0F:AF:85:70:42 192.168.2.20 00:0F:AF:85:55:DE 192.168.1.21 00:0F:AF:85:6C:09 192.168.2.22 00:0F:AF:85:5C:41 192.168.0.151 00:0F:AF:85:6C:F6 192.168.1.152 00:0F:AF:83:1F:65 192.168.0.153 00:0F:AF:85:70:03 192.168.3.10 00:30:15:A2:3B:B6 192.168.1.11 00:30:15:A3:23:B7 192.168.3.12 00:30:15:A2:3A:A1 [root@student tmp]# sort -t. -k3.1,3.1nr -k4.1,4.3nr test.txt 2.使用uniq删除重复内容如果文件中有多行完全相同的内容, 当前是希望能删除重复的行,同时还可以统计出完全相同的行出现的总次数, 那么就可以使用uniq命令解决这个问题(但是必须配合sort使用)。uniq [OPTION]... [INPUT [OUTPUT]] -c 计算重复的行 //演示uniq的用法, 首先创建一个文件: [root@xuliangwei ~] abc 123 abc 123 //uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起 [root@xuliangwei ~] 123 123 abc abc //使用uniq去除相邻重复的行 [root@xuliangwei ~] 123 abc //使用-c参数, 能统计出文件中每行内容重复的次数 [root@xuliangwei ~] 2 123 2 abc 3.使用cut命令截取某一个字段cut OPTION... [FILE]... -d:指定分隔符 -f:数字,取第几列 –f3,6三列和6列 -c:按字符取(空格也算) #echo “Im xuliangwei, is QQ 552408925” >xuliangwei.com # sed 's#,# #g' xuliangwei.txt | cut -d " " -f2,6 # sed 's#,# #g' xuliangwei.txt | awk -F " " '{print $2 " " $5}' # awk -F '[, ]+' '{print $2,$5}' xuliangwei.txt # awk '{print $2 $5}' xuliangwei.txt | awk -F "," '{print $1" " $2}' # awk -F "[, ]" '{print $2 " " $6}' xuliangwei.txt 此类问题是运维工作中最常见的问题。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排名等 [root@student tmp]# cat web.log http: http: http: http: http: http: [root@student tmp]# awk -F '/' '{print $3}' web.log|sort -rn|uniq –c 3 www.xuliangwei.comxuliangwei.com 2 post.xuliangwei.comxuliangwei.com 1 mp3.xuliangwei.comxuliangwei.com [root@student tmp]# cut -d / -f3 web.log|sort -rn|uniq –c 3 www.xuliangwei.comxuliangwei.com 2 post.xuliangwei.comxuliangwei.com 1 mp3.xuliangwei.comxuliangwei.com 4.使用wc统计wc - print newline, word, and byte counts for each file显示文件的行、单词与字节统计信息 wc [OPTION]... [FILE]... -l:显示文件行数 -c:显示文件字节 -w:显示文件单词 //统计fstab有多少行 [root@student ~] 15 /etc/fstab 显示/etc/services 文件行号 [root@student ~] 10774 /etc/services //扩展方法 [root@student ~] [root@student ~] [root@student ~] [root@student ~] 转载 xuliangwei.com
2023年11月01日
23 阅读
0 评论
0 点赞
2023-11-01
Linux系统Bash初识
转载 xuliangwei.com1.Linux系统终端概述服务器终端切换: Ctrl + Alt + F1 … F6虚拟机终端切换: Ctrl +Shift +Alt +F1 … F6虚拟终端由mingetty程序生成 [root@xuliangwei ~]# tty /dev/tty1 [root@xuliangwei ~]# tty /dev/pts/1 2.Linux系统Bash管理简单的说, Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。Linux, Shell也有多种不同的版本。主要有下列版本的Shell:BASH Shell: 是一个为GNU计划编写的Unix shell, 是许多Linux发行版的默认ShellC Shell: 是SUN公司Shell的BSD版本。Z Shell: 它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等, Shell Script大致都类同,当您学会一种Shell以后,其它的Shell很快就上手, 大多数的时候, 一个Shell脚本 通常可以在很多种Shell上使用。查看当前使用的shell[root@xuliangwei ~] /bin/bash 查看Linux可用的 shell[root@xuliangwei ~] /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh /bin/zsh Bash Shell提示符[root@xuliangwei ~] [\u@\h \W]\$ [root@xuliangwei ~] Sat Jan 20 09:45:40 EST 2018 [root@xuliangwei ~] Shell 语法命令行bash shell, 为用户提供输入, 执行命令的界面//等待用户输入,执行命令, $ = 普通用户, [student@desktop0 ~]$ //bash Shell 执行命令 //命令 选项 参数 command [-options] [arguments] [root@xuliangwei ~] [root@xuliangwei ~] [root@xuliangwei ~] 命令: 命令的主体 一个命令有多个选项, 多个选项可以合并在一起 选项: 用于调节命令的具体功能 以 “-”引导短格式选项(单个字符),例如“-l” 以“--”引导长格式选项(多个字符),例如“--color” 多个短格式选项可以写在一起,只用一个“-”引导,例如“-al” 参数: 命令操作的对象,如文件、目录名等 我们可以使用SHELL实现对Linux的大部分管理1.文件管理2.权限管理3.用户管理4.磁盘管理5.网络管理6.软件管理...使用Shell的方式输入命令 --> 效率低 -->适合少量的工作Shell Script --> 效率高-->适合复杂重复性的工作BASH所支持的功能命令行编辑快捷键内部命令与外部命令命令补全与路径补全命令别名与命令历史转义字符与路径展开通配符与特殊字符重定向与管道技术2.1.Bash特性:命令补全通过上下方向键来调取过往执行过的Linux命令;命令或参数仅需输入前几位就可以用Tab键补全;tab键可以实现命令补全, 路径补全和命令实现方式一致, 工作中我们经常用到tab补全, 减少执行命令以及路径出错率。1.命令补全2.提示功能3.减少出错 [root@xuliangwei ~]# ifcon [root@xuliangwei ~]# ifconfig [root@xuliangwei ~]# if if ifconfig ifenslave ifrename ifcfg ifdown ifnames ifup [root@xuliangwei ~]# ls /etc/sysconfig/network-scripts/ 2.2.Bash特性:命令快捷键终端快捷键的使用可以帮助我们大大提升效率Ctrl + A Ctrl + E Ctrl + C Ctrl + D Ctrl + Z Ctrl + L Ctrl + K Ctrl + U Ctrl + R History查看系统命令历史, 追溯之前发生情况命令选项-w 保存命令历史到历史文件-c 清空命令历史记录, 不会情况文件-d 删除命令历史的第 N 条行history命令历史相关快捷键//使用双 !! 可执行上一条命令 [root@xuliangwei ~] xuliangwei.com [root@xuliangwei ~] ls xuliangwei.com //输入!6, 执行history命令历史中第 6 行命令 [root@xuliangwei ~] touch xuliangwei.com //使用!cat, 调用history命令历史最近一次执行过的cat命令 [root@xuliangwei ~] [root@xuliangwei ~] cat /etc/sysconfig/network-scripts/ifcfg-eth0 [root@xuliangwei ~] //调用上一条命令的最后参数或选项, 按下ESC松开, 然后按下 "." [root@xuliangwei ~] [root@xuliangwei ~] //第二种方式, 输入!$ [root@xuliangwei ~] ls /etc/passwd /etc/passwd 2.3.Bash特性:命令别名命令别名将用户经常使用的复杂命令简单化, 可以用"alias 别名名称=命令"命令创建属于自己的命令别名, 若要取消一个命令别名,则是用unalias 别名名称命令。 [root@xuliangwei ~]# alias if0='ifconfig eth0' [root@xuliangwei ~]# if0 [root@xuliangwei ~]# alias ifconfig='ifconfig eth0' [root@xuliangwei ~]# /sbin/ifconfig [root@WebServer ~]# \ifconfig [root@xuliangwei ~]# echo "alias ifconfig='ifconfig eth0'" >> ~/.bashrc [root@xuliangwei ~]# unalias ifconfig 2.4.Bash特性:命令流程当我们执行一个命令, 整个命令执行流程如下:1.判断命令是否通过绝对路径执行2.判断命令是否存在别名3.判断用户输入的是内部命令还是外部命令4.内部命令直接执行, 外部命令检测是否存在缓存5.检测PATH路径, 有执行, 无报错内部命令: shell程序自带的命令。外部命令: 在系统PATH变量的某个路径下的可执行程序。使用type命令检测用户输入的命令属于内部命令还是外部命令。//cd命令属于shell内部命令 [root@linux-node1 ~] cd is a shell builtin cd is /usr/bin/cd //ping属于外部命令, 同时会打印当前命令路径 [root@xuliangwei ~] ping is /bin/ping PATH变量定义的路径, 作用是告诉Bash执行的外部命令存放的位置,Bash会在这些路径中进行逐个扫描。 [root@xuliangwei ~]# echo "123" 123 [root@xuliangwei ~]# echo -e "123 \n456" 123 456 [root@xuliangwei ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@xuliangwei ~]# PATH=/soft/bin:$PATH echo 'export PATH=/soft/bin:$PATH' >> /etc/profile 事实上执行过的外部命令都会保存在内存缓存中, 当再次执行相同的命令, 会通过缓存调取执行, 也就意味着不会搜索PATH路径。//表缓存命令所在位置 [root@xuliangwei ~] hits command 1 /usr/bin/tty 3 /sbin/ifconfig //已缓存命令,如果移动位置会导致无法找到该命令 [root@xuliangwei ~] [root@xuliangwei ~] -bash: /sbin/ifconfig: No such file or directory //删除缓存过的ifconfig命令, 即可执行 [root@xuliangwei ~] [root@xuliangwei ~] //当然可以清空缓存表 [root@xuliangwei ~] //命令缓存hash需要注意如下情况: 1.如果执行外部命令1次就会对该命令进行缓存 2.如果将命令移动了位置 a.使用绝对路径执行 b.删除hash表的缓存指令 总结, 当我们执行了一个ping命令之后, 整个命令执行的流程步骤如下:1.检查执行的是否是绝对路径执行2.检查该ping命令是否存在别名3.检查该ping命令是内部命令还是外部命令4.如果是内部指令直接执行, 如果是外部命令5.检测该命令是否有缓存,如果没有,查找PATH变量6.检查PATH路径直到查找到该命令然后执行7.如果没有找到该命令则返回错误。command not found2.5.Bash特性:路径展开Linux Shell下路径展开用花括号包括, 逗号分隔, 这样花括号里的内容会被展开形成列表。[root@xuliangwei ~] mkdir: created directory `/tmp/zz' mkdir: created directory `/tmp/zz/a' mkdir: created directory `/tmp/zz/a/b' mkdir: created directory `/tmp/yy' mkdir: created directory `/tmp/yy/a' mkdir: created directory `/tmp/yy/a/b' //删除目录 [root@xuliangwei ~] //通过路径展开方式创建目录 [root@xuliangwei ~] mkdir: created directory `/tmp/zz' mkdir: created directory `/tmp/zz/a' mkdir: created directory `/tmp/zz/a/b' mkdir: created directory `/tmp/yy' mkdir: created directory `/tmp/yy/a' mkdir: created directory `/tmp/yy/a/b' 思考:在/tmp 路径下创建以下目录 etc/init.d etc/sysconfig usr/lib usr/bin usr/include var/spool var/run proc sys bin 2.6.Bash特性:转义字符Shell解释器提供了非常丰富的转义字符, 来实现字符处理以及命令替换。4类常用转义字符反斜杠(\):使反斜杠后面的一个变量变为字符串。单引号(''):转义其中所有的变量为单纯的字符串。双引号(""):保留其中的变量属性,不进行转义处理。反引号(``):把其中的命令执行后返回结果。//将特殊字符转换为正常字符 [root@xuliangwei ~] shoping is 00 [root@xuliangwei ~] shoping is $500 //转义其中特殊字符为普通字符串 [root@xuliangwei ~] shoping is $500 //使用$()实现命令替换 [root@xuliangwei ~] The Directory is /root //使用``实现命令替换 [root@xuliangwei ~] The Directory is /root //转义其中所有的变量为单纯的字符串 [root@xuliangwei ~] [root@xuliangwei ~] file-2017-12-03-04-18 [root@xuliangwei ~] [root@xuliangwei ~] file-2017-12-03-04-18 file-`date +%F-%H-%S` 2.7.Bash特性:获取帮助1.通过man命令获取帮助手册的常见级别: 1(普通用户命令手册) , 5(配置文件手册), 8(管理员命令手册) g : 回到手册的顶部 G : 去到文档的底部 / : 输入要搜索的关键字,进行文档搜索 q: 退出文档 回车: 往下滚动一行 空格键: 往下翻一页 man -a passwd man 5 passwd man 1 passwd man -k passw 找到所有的包含passwd关键字的手册并且列出来 2.通过info或pinfo获得帮助首页寻找Textinfo文档,如果没有,强制打开对应的Man文档 与vi风格类似,快捷键: 空格:翻页 HOME: 返回页面顶部 END:返回页面底部 上箭头: 光标上移动一行 下箭头: 光标下移动以行 左箭头: 返回上一章节 右箭头: 浏览光标所在章节 d: 回到手册首页 q: 退出手册 强制打开指定级别的man文档 $ pinfo -m 5 passwd
2023年11月01日
31 阅读
0 评论
0 点赞
2023-11-01
虚拟环境安装Linux
转载 xuliangwei.com1.安装配置VM虚拟机VMware WorkStation虚拟机软件是一款桌面计算机虚拟软件,让用户能够在单一主机上同时运行多个不同的操作系统。1.每个虚拟操作系统的硬盘与数据都是独立2.多台虚拟机可以构建为一个中小企业集群架构3.虚拟机支持快照与克隆,虚拟网络,网络安装等第1步: 运行下载完成的Vmware Workstation虚拟机软件包,将会看到如图1-1所示的虚拟机程序安装向导初始界面。2.安装Linux操作系统CentOS6安装指南传送门安装RHEL/CentOS7系统时需要注意:您电脑的CPU需要支持VT(Virtualization Technology虚拟化技术)所谓VT,指的是让单台计算机能够分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化注意:如果开启虚拟机后依然提示CPU不支持VT技术”报错信息,请重启电脑并进入到BIOS中把CPU的VT虚拟化功能开启即可。第1步:在虚拟机管理界面中单击“开启此虚拟机”按钮后数秒就看到RHEL 7系统安装界面,如图1-所示。 描述 含义 Install Red Hat Enterprise Linux 7 安装Redhat Linux7系统 Test this media & install Red Hat Enterprise Linux 7 校验光盘完整性后再安装 Troubleshooting 启动救援模式 第2步:接下来按回车键后开始加载安装镜像,所需时间大约在30~60秒,请耐心等待,如图1-27所示。........3.重置Linux root密码平时日常练习过程中如果不小心将Linux系统的密码忘记了并不用慌,只需简单几步就可以完成密码的重置工作。要先确定是否为RHEL/CentOS 7系统。如果是,然后再进行下面的操作。[root@bgx-Linux ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.4.1708 (Core) 第1步:重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面第2步:在linux16参数这行的最后面追加rd.break参数,然后按下Ctrl + X组合键来运行修改过的内核程序第3步:大约5秒过后,进入到系统的紧急求援模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了。命令行执行效果如图所示。救援模式重置Linux系统的root管理密码命令如下:mount -o remount,rw /sysroot chroot /sysroot echo "123" | passwd --stdin root touch /.autorelabel exit reboot 4.Systemd初始化进程Linux7系统的开机启动过程如下:1.首先BIOS开机自检2.然后进入启动菜单,加载系统内核3.然后内核进行初始化4.最后启动初始化进程初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。RHEL/CentOS 7系统已经替换掉了熟悉的初始化进程服务System V init正式采用全新的systemd初始化进程服务。如果您之前学习的是RHEL/CentOS 6或7系统,可能会不习惯。systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。CentOS6系统, 管理员可以使用如下指令来管理服务器的启动与停止 shutdown -h now init 0 reboot init 6 CentOS7系统, 管理员可以使用systemctl命令来管理服务器启动与停止 systemctl poweroff systemctl reboot 5.Systemd目标名称无论如何, RHEL/CentOS 7已经没有了“运行级别”这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元Unit, systemd用目标target代替了System V init中运行级别的概念,这两者的区别如下所示 System V init运行级别 systemd目标名称 作用 0 runlevel0.target, poweroff.target 关机 1 runlevel1.target, rescue.target 单用户模式 2 runlevel2.target, multi-user.target 3 runlevel3.target, multi-user.target 多用户的文本界面 4 runlevel4.target, multi-user.target 5 runlevel5.target, graphical.target 多用户的图形界面 6 runlevel6.target, reboot.target 重启 emergency emergency.target 救援模式 shutdown systemctl 救援模式 reboot emergency.target 救援模式 powef emergency.target 救援模式 emergency emergency.target 救援模式 RHEL/CentOS6系统运行级别管理 [root@student ~]# runlevel N 3 [root@student ~]# init 3 [root@student ~]# /etc/inittab RHEL/CentOS7系统目标管理 [root@student ~]# systemctl get-default [root@student ~]# systemctl set-default TARGET.target # multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 6.systemd服务管理由于之前长期使用RHEL/CentOS 6系统, 已经习惯使用service chkconfig等命令来管理系统服务,但在RHEL/CentOS 7系统中是使用systemctl命令来管理服务的。如下是RHEL/CentOS 6系统中System V init命令与RHEL/CentOS 7系统中systemctl命令的对比,后续课程中会经常用到它们。systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令 System V init(6系统) systemctl命令(7系统) 作用 service crond start systemctl start crond.service 启动服务 service crond stop systemctl stop crond.service 停止服务 service crond restart systemctl restart crond.service 重启服务 service crond reload systemctl reload crond.service 重新加载配置(不终止服务) service crond status systemctl status crond.servre 查看服务运行状态 systemctl is-active sshd.service 查看服务是否在运行中 systemctl mask crond.servre 禁止服务运行 systemctl unmask crond.servre 取消禁止服务运行 systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令 System V init(6系统) systemctl命令(7系统) 作用 chkconfig crond on systemctl enable crond.service 开机自动启动 chkconfig crond off systemctl disable crond.service 开机不自动启动 chkconfig --list systemctl list-unit-files 查看各个级别下服务的启动与禁用 chkconfig --list crond systemctl is-enabled crond.service 查看特定服务是否为开机自启动 chkconfig--add crond systemctl daemon-reload 创建新服务文件或者变更设置 systemctl服务状态说明 服务状态 状态说明 loaded 服务单元的配置文件已经被处理 active(running) 服务的一个或多个进程在运行中 active(exited) 一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出) active(waiting) 服务已经运行但在等待某个事件 inactive 服务没有在运行 enabled 服务设定为开机运行 disabled 服务设定为开机不运行 static 服务不能被设定开机启动,但可以由其他服务启动该服务
2023年11月01日
24 阅读
0 评论
0 点赞
2023-11-01
Linux系统命令整理
查询及帮助命令(2个)man help文件和目录操作命令(11个)ls tree pwd mkdir cd touch cp mv rm ln find查看文件及内容处理命令(17个)cat more less head tail cut sort uniq wc file diff vimdiff chattr lsattr rev grep egrep (split paste iconv dos2unix)文件压缩及解压缩命令(7个)tar unzip gzip zip bzip2 zcat bzcat信息显示命令(12个)hostnamectl uname hostname dmesg uptime file stat du df top free date cal 搜索文件命令(4个)which commandwhereis -b commandlocate /etc/shfind用户管理命令(10个)useradd usermod userdel groupadd passwd chage id su visudo sudo基础网络操作命令(10个)telnet ssh scp wget ping route ifconfig ifup ifdown netstat深入网络操作命令(6个)lsof route mail mutt nslookup dig有关磁盘文件系统的命令(8个)mount umount df du fsck dd dumpe2fs dump关机/重启/注销命令(4个)shutdown halt init reboot系统管理相关命令(8个)uptime top free vmstat mpstat iostat sar chkconfig系统安全相关命令(10个)chmod chown chgrp chage passwd su sudo umask chattr lsattr查看系统用户登陆信息的命令(7个)whoami who w last lastlog users finger查看硬件信息相关命令(8个)ifconfig free fdisk ethtool mii-tool dmidecode dmesg lspci其它命令(19个)echo printf rpm yum watch alias unalias date clear history eject time nohup nc xargs exec export unset type系统性能监视高级命令(12个)内存:top free vmstat mpstat iostat sarCPU:top vmstat mpstat iostat sarI/O:vmstat mpstat iostat sar进程:ipcs ipcrm lsof strace lstrace负载:uptime进程管理命令(16个)bg:后台运行fg:挂起程序jobs:显示后台程序kill,killall,pkill:杀掉进程crontab:设置定时ps:查看进程pstree:显示进程状态树top:显示进程nice:改变优先权screennohup:用户退出系统之后继续工作pgrep:查找匹配条件的进程 strace:跟踪一个进程的系统调用ltrace:跟踪进程调用库函数的情 vmstat:报告虚拟内存统计信息linux 系统四位剑客(3个)grep(egrep) sed awk
2023年11月01日
38 阅读
0 评论
0 点赞
2023-09-13
linux chage命令简介
chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限。它可以修改账号和密码的有效期。对于chage命令的描述如下所示: The chage command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change his/her password 参数 表头 -d 指定密码最后修改日期 -E 密码到期的日期,过了这天,此账号将不可用。0表示马上过期,-1表示永不过期。 -h 显示帮助信息并退出 -I 密码过期后,锁定账号的天数 -l 列出用户以及密码的有效期 -m 密码可以更改的最小天数。为零代表任何时候都可以更改密码。 -M 密码保持有效的最大天数。 -W 密码过期前,提前收到警告信息的天数。 使用示例:1: 查看chage命令的帮助信息[root@DB-Server ~]#man chage [root@DB-Server ~]# info chage [root@DB-Server ~]# chage -h Usage: chage [options] user Options: -d, --lastday LAST_DAY set last password change to LAST_DAY -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE -h, --help display this help message and exit -I, --inactive INACTIVE set password inactive after expiration to INACTIVE -l, --list show account aging information -m, --mindays MIN_DAYS set minimum number of days before password change to MIN_DAYS -M, --maxdays MAX_DAYS set maximim number of days before password change to MAX_DAYS -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS 2:查看mysql用户以及密码的有效期[root@DB-Server ~]# chage -l mysql Last password change : Mar 26, 2015 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : -1 Maximum number of days between password change : -1 Number of days of warning before password expires : -1 3:设置mysql用户60天后密码过期,至少7天后才能修改密码,密码过期前7天开始收到告警信息。[root@DB-Server ~]# chage -M 60 -m 7 -W 7 mysql You have new mail in /var/spool/mail/root [root@DB-Server ~]# chage -l mysql Last password change : Mar 26, 2015 Password expires : May 25, 2015 Password inactive : never Account expires : never Minimum number of days between password change : 7 Maximum number of days between password change : 60 Number of days of warning before password expires : 7 [root@DB-Server ~]# clip_image001 4:强制新建用户第一次登陆时修改密码[root@DB-Server home]# useradd test [root@DB-Server home]# passwd test Changing password for user test. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@DB-Server home]# chage -d 0 test You have new mail in /var/spool/mail/root [root@DB-Server home]# chage -l test Last password change : password must be changed Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 综合版 linux chage命令功能:修改帐号和密码的有效期限 用法:chage[-l][-m mindays][-M maxdays][-I inactive][-E expiredate][-W warndays][-d lastdays]username 参数: -l:列出用户的以及密码的有效期限 -m:修改密码的最小天数 -M:修改密码的最大天数 -I:密码过期后,锁定帐号的天数 -d:指定密码最后修改的日期 -E:有效期,0表示立即过期,-1表示永不过期 -W:密码过期前,开始警告天数 chage命令 是用来修改帐号和密码的有效期限。 语法 chage [选项] 用户名 选项 -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M:密码保持有效的最大天数。 -w:用户密码到期前,提前收到警告信息的天数。 -E:帐号到期的日期。过了这天,此帐号将不可用。 -d:上一次更改的日期。 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 实例 可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准: PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 当然在/etc/default/useradd可以找到如下2个参数进行设置: # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes 通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。 我的服务器root帐户密码策略信息如下: [root@linuxde ~]# chage -l root 最近一次密码修改时间 : 3月 12, 2013 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :99999 在密码过期之前警告的天数 :7 我可以通过如下命令修改我的密码过期时间: [root@linuxde ~]# chage -M 60 root [root@linuxde ~]# chage -l root 最近一次密码修改时间 : 3月 12, 2013 密码过期时间 : 5月 11, 2013 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :60 在密码过期之前警告的天数 :9 然后通过如下命令设置密码失效时间: [root@linuxde ~]# chage -I 5 root [root@linuxde ~]# chage -l root 最近一次密码修改时间 : 3月 12, 2013 密码过期时间 : 5月 11, 2013 密码失效时间 : 5月 16, 2013 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :60 在密码过期之前警告的天数 :9 从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。
2023年09月13日
33 阅读
0 评论
0 点赞
1
2
3
4
...
10