
正文
linuxmask命令 linux masked
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux常见命令
权限管理命令 chmod
英文愿意: change the permissions mode of a file
语法: chmod[{ugoa}{+-=}{rwx}] [文件或目录]
[mide = 421] [文件或目录]
-R 递归修改
权限linuxmask命令的数字表示
r -- 4
w -- 2
x -- 1
rwxrw-r-- (4+2+1 = 7)
7 6 4
例子:mkdir /temp 创建linuxmask命令了一个目录
touch /temp/testfile 在该目录下创建了一个test file文件
chmod 777 /temp 改变了一下该目录linuxmask命令的权限
名称: chgrp
英文原意:change file group ownership
语法:chgrp [用户][文件或目录]
功能: 改变文件或目录的所属租
例子: useradd hl // 添加所有者
groupadd brother // 添加所有组
charp brother text // brother变成了text文件的所属组
注意:
1、所属组就是创建这的所属者的缺省组
2、linux中创建的文件缺少x(可执行)为了使系统更加安全
mask
0022
0特殊权限
022 ugo --- -w- -w-
1、文件搜索命令find
执行权限:find
语法:find[搜索范围][匹配条件]
功能描述:文件搜索
例子:
find /etc -name init (-iname 不区分大小写)
find /home -user(-group) hl
在根目录下查找所有者(所有组)为hl的文件
在目录/etc中查找文件init
init init init // 通配符
?init (?匹配单个字符)
find / -size +204800
在跟目录下查找大于100MB的文件 (100MB = 102400KB = 204800)
+n 大于 -n小于 n等于
find /etc -cmin -5
例子2:
find /etc -size + 163840 -a size -204800
在/etc下查找大于80MB小于100MB的文件
-a两个条件同时满足
-o两个条件满足任意一个即可
在/etc下查找5分钟内被修改的属性的文件和目录
-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
2、文件搜索指令 locate
命名名称:locate
执行权限:所有用户
语法:locate 文件名
功能描述:在文件资料库中查找文件
例子: $ locate inittab
输出文件所在位置
locate和find的区别:
locate的查找速度很快linuxmask命令,因为find是在分区和磁盘上查找,而locate是在资料库中查找
注意:如果资料库没有实时更新,所以locate可能会查不到要查询的文件。
即:
updatedb (升级文件的资料库)
loocate -i 文件名 (-i 不区分大小写)
3、文件搜索命令:which (更精确呦)
执行权限:所有用户
功能描述:搜索命令所在目录及别名信息
例子: which ls
alias(别名)
4、whiereis
执行权限:所有用户
语法: whereis[命令名称]
功能描述:搜索命令所在目录及帮助文档路径
例子: whereis ls
5、grep
执行权限:所有用户
语法:grep -iv[指定字串][文件]
功能描述:在文件中搜索字符串匹配的行并输出
-i 不区分大小写
-v 排除指定字符串
例子 grep mysql /root/install.log
补充: linux中 # 表示注释
命名名称:man
英文原意:manual
执行权限:所有用户
语法:man[命令或配置文件]
功能描述:获取帮助信息
例子: man ls # 查看ls命令的帮助信息
man services 查看配置文件sevices的帮助信息
补充:man 。。。。后
/-g :查询与g有关的信息
空格进行翻页
回车进行换行
按n继续查找
命令名称:useradd
执行权限:root
语法:useradd 用户名
功能描述: 添加新用户
例子: useradd HF
命令名称:passwd
执行权限:所有用户
语法:passwd 用户名
功能描述: 设置用户密码
例子: passwd HF
命令名称:who
执行权限:所有用户
语法:who
功能描述: 查看登录用户信息
例子: who
输出内容含义:
登录用户名 登录终端(tty本地登录、pds表述远程终端) 登录时间 登录主机ip地址
命令名称:w
执行权限:所有用户
语法:w
功能描述: 查看登录用户详细信息
例子: w
命令名称:gzip
英文原意:GNU zip
执行权限:所有用户
语法:gzip[文件]
功能描述: 压缩文件
压缩后文件格式:.gz
解压缩:gunzip 压缩文件
注意:gizp只能压缩文件,不能压缩目录
命令名称:tar
执行权限:所有用户
语法:tar 选项 [-zcf] [压缩文件名] [目录]
-c 打包
-v 显示详细文件
-f 指定文件名
-z 打包同时压缩
功能描述: 打包目录
压缩后文件格式:.tar.gz
命令名称:zip
执行权限:所有用户
语法:zip 选项[-r][压缩后文件名][文件或目录]
-r 压缩目录
功能描述: 压缩文件或目录
压缩后文件格式: zip
注意:zip是window和linux系统中通过用的压缩格式
命令名称:bzip2
执行权限:所有用户
语法:bzip2 选项 [-k] [文件]
-k 产生压缩文件后保留有源文件
功能描述: 压缩文件
压缩后文件格式: .bz2
注意: bzip2的压缩比例大,适用于压缩较大的文件
bunzip2解压缩
对目录压缩:tar.bz2
指令名称:write
指令权限:所有用户
语法:write 用户名
功能描述:给用户发消息 ,以ctrl + D保存
例子: write YX
命令名称:wall
英文原意:write all
执行权限:所有用户
语法:wall [message]
功能描述: 发广播信息
命令名称:ping
执行权限:所有用户
语法:ping 选项IP地址
-c 指定发送次数
功能描述: 测试网络连通性
例子: ping 192.168.1.156
命令名称:ifcongig
英文原意:interface configure
执行权限:root
语法:ifconfig 网卡名称 IP地址
功能描述:查看和设置网卡信息(设立之临时IP)
例子: ifconfig etho 192.168.1.156
etch0 本地真实网卡
lo 回环网卡 (用来本机通信个测试的)
cncap:。。网络名称是以太网
HWaddr: 16进制表示的 48位的 网卡的物理地址
addr:当前计算机IP地址
Bcast:当前网络地址
Mask:子网掩码
inet6 addr: 表示的是IPv6的地址信息
RX packets:接受数据包的总数量
TX packets:发送数据包的总数量
Base addtess: 网卡当中的物理位置
命令名称:mail (邮件命令)
执行权限:所有用户
语法:mail [用户名]
功能描述:查看发送电子邮件
发送:ctrl + D
查询: mail
例子: mail root
[图片上传中...(-d00bb9-1591253201012-0)]
命令名称:last
执行权限:所有用户
语法:last
功能描述:列出目前和过去登入系统的用户信息
命令名称:traceroute
执行权限:所有用户
语法:traceroute
功能描述:显示数据包到主机的路径
例子: traceroute
命令名称:netstat
执行权限:所有用户
语法:netstat [选项]
功能描述:显示网络相关信息
选项:
-t : TCP协议
-u : UDP协议
-l : 监听
-r : 路由
-n : 显示IP地址和端口号
例子:
netstat -tlun 查看本机监听的端口
netstat -an 查看本机所有网络链接
netstat -rn 查看本届路由表
命令名称:setup
执行权限:root
语法:setup
功能描述:配置网络(永久生效)
例子: setup
注意:配置网络结束后要重启网络服务
service network restart
挂在命令
命令名称:mount
执行权限:所有用户
语法:mount[-t 文件系统] 设备文件
例子: mount -t iso9660/dev/sr0/mnt/cdrom
命令名称:shutdown
[root@localhost~]#shutdown [选项] 时间
选项:- c : 取消前一个关机命令
- h:关机
- r :重启
特点:可以正确的关闭和保存服务,建议实用
其他关机命令
halt
poweroff (直接断电)
init 0
重启命令
reboot
init6
补充:init _ 的数字含义
init0 关机
init1 单用户(启动最小最核心的服务)
init2 不完全多用户,不含NFS服务(network file system 网络文件系统)
init3 完全多用户
init4 未分配
init5 图形界面
init6 重启
查询系统运行级别
runlevel
退出登录命令
logout
相关问答
Q1: linux ACL mask权限问题
1,先找到/etc/passwd里面是否有你输入的帐号,没有的话则跳出,有的话就将该帐号对应的UID,GID
读出来,另外还有该帐号的家目录与shell设定也一并读出;
2,核对密码表,这时Linux会进入/etc/shadow里面找出对应的帐号与UID,然后核对一下你刚刚输入的密码
与里面的密码是否相符
3,如果一切OK的话,就进入Shell控管的阶段
/etc/passwd的档案结构
1 帐号名称 用来对应UID的
2 密码 会看到一个X 密码数据改放到/etc/shadow
3 UID 0表示root 1~ 499表示系统帐号 1~99 由distributions自行建立的系统帐号,100~499用户有系统帐号需求时,可以使用的帐号UID
4 GID 这个/etc/group的观念和/etc/passwd差不多,用来规范组名与GID对应而已
5用户信息栏说明,只是用来解释这个帐号的意义而已,不过,如果你提供使用finger的功能时,这个字段可以提供很多的讯息,chfn指令用于解释
6 家目录 root就是/root
7 Shell 当用户登录系统后会取得一个Shell来与系统的核心沟通,以进行用户的操作任务,一般取值为/sbin/bash, 如果用来替代成让帐号无法取得
shell环境的登录动作,那就是/sbin/nologin这个东西
/etc/shadow的档案结构
1 帐号名称 用来必须要与/etc/passwd 相同才行
2 密码 经过编码的密码(加密)啦!这个档案只有root才可以读写就是了,不要不小心更动这个档案的权限,由于固定的编码系统产生的密码长度
必须一致,因此在此字段上加上!或*改变了密码字段的长度,就会让密码【暂时失效】了
3最近更动密码癿日期: 这个字段的值是以1970年1月1日而累加的日期,14126表示的就是2008-09-04那一天,想要了解该日期,可以使用chage
这个指令的帮忙
4 密码不可被改动的天数: 这个帐号最近一次被更改后需要多少时间才能再次被变更,如果是0的话,表示密码随时可以更动的意思
5 密码需要重新变更的天数:强制性的规定该密码在多少时间后需要重新的设定一下密码
6 密码需要变更期限前的警告天数:表示提示用户这个密码就要到期了,请尽快重新设定你的密码
7 密码过期后的帐号宽限时间,过了期限后依旧没有更新密码,那么密码就算过期了,虽然密码过期了,但是该帐号还是可以用来进行其他工作的
包括登录系统取得bash,不过如果密码过期了,登录系统时,系统会强制你必须要重新设定密码才能登录继续使用,如果密码过期几天后,还是没有
登录更改密码,那么这个帐号密码就会【失效】,这个帐号再也无法使用该密码登录了,密码过期和密码失效并不相同
8 帐号失效日期: 表示此帐号在此日期之后,就无法再使用了,无论密码是否过期
9 保留字段,看以后是否有新功能加入
/etc/group的档案结构
1 组名
2 群组密码 密码已经移动到/etc/gshadow 中去了,这个字段只会存在一个【x】而已
3 GID群组ID,
4 此群组支持的帐号名称: 如果想让dmtsai加入root群组的话,那么在这行的最后面加上【,dmtsai】,注意不要空格【root:x:0:root,dmtsai】
执行groups得到这个用户所有支持的群组,第一个输出的群组即为有效群组,touch一个新档案,那么该档案的群组即为dmtsai了
newgrp:有效群组的切换,不过使用newgrp是有限制的,那就是你想要切换的群组必须是你已经有支持的群组,例如:dmtsai可以在
dmtsai/users这两个你支持的群组之间进行切换的,执行newgrp users 可以变更有效群组为users这个群组,这个指令执行后,是以另一个
shell来提供接下来的操作的,这个时候dmtsai这个使用者目前是以另一个shell登录的,而且新的shell给予dmtsai有效的GID为users
有效群组被重新计算,由于是新取得的一个shell,想要返回到原本的环境中,需要输入exit回到原本的shell中
你要加入一个群组有两个方式,一个是透过系统管理员root利用usermod帮你加入,还可以透过群组管理员以gpasswd帮你
加入到他管理的群组中
新增与移除使用者:useradd 相关配置文件,passwd, usermod userdel
useradd [-u UID] [-g 刜始群组] [-G 次要群组] [-mM]\ 这句就是增加初始群组和次要群组的方法
创建用户时,默认会建立用户家目录,且目录的权限为700,同时还会帮我们处理几个项目
/etc/passwd 里面建立一行与数据有关的数据,包含UID和GID
/etc/shadow 里面将此账号的密码相关参数填入,但尚未有密码
/etc/group 里面加入一个账号名称一模一样的组名
/home 底下建立一个与账号同名的目录作为用户家目录,且权限为700
用户建立系统账号一般由100号以后算起,所以这里我们加上 -r 这个选项后,系统将账号与账号同名群组的UID/ GID都指定小于500以下,由于这些账号只是用来运作
系统所需服务的权限设定所以不会主动建立家目录
useradd 会更改以下的文件
用户账号与密码参数方面的档案:/etc/passwd, /etc/shadow,使用者群组相关方面癿档案:/etc/group, /etc/gshadow 用户的家目录:/home/账号名称
而家目录中的内容来自于/etc/default/useradd 中的内容 可以用useradd -D查看到,
GROUP=100 的含义分为两种
1,私有群组机制,系统建立一个与账号一样的群组给使用者作为初始群组,RHEL FEDORA CENTOS 都是这样设定的
2,公有群组机制,就是以100这个群组作为新建账号的初始群组,SUSE就是这样设定的
HOME=/home:用户家目录的基准目录(basedir)
INACTIVE=-1:密码过期后是否会失效的设定值 0代表过期后失效,1代表永远不失效,30代表30天后失效
EXPIRE=:账号失效的日期
SHELL=/bin/bash:默认使用的 shell 程序文件名
如果是mail server ,那么不许用户登陆系统得到shell,那么可以将这里设定为/sbin/nologin,如此以来,新建的用户都无法登陆,免去了后续使用usermod的修改手续了
SKEL=/etc/skel:用户家目录参考基准目录
vbird1 家目录 /home/vbird1 内的各项数据,都是由 /etc/skel 所复制过去的,你可以在/etc/skel目录内容修改.bashrc文件或者建立www这个目录,那么未来新增的使用者
的家目录下就会有www这个目录了
CREATE_MAIL_SPOOL=yes:建立使用者的 mailbox,这个值设置为yes,那么ll /var/spool/mail/这个目录下就会存在使用者的邮箱了
除了以上的账号设定值之外,UID和GID还有密码参数是参考/etc/login.defs文件的
文件内容包括
MAIL_DIR /var/spool/mail ==用户默认邮件信箱放置目录
现在用户登陆系统时的密码校验是通过PAM模块来验证的,所以PASS_MIN_LEN是失效的
UID_MIN UID_MAX UID的最小和最大值,一般创建用户时,会先查询/etc/passwd中的最大UID数值,再加上一就是新账号的UID了,如果加上-r 那么就会找出比500小的
最大的那个UID + 1
CREATE_HOME yes ==在不加 -M 及 -m 时,是否主动建立用户家目录
UMASK 077 ==用户家目录建立的 umask ,因此权限会是 700
USERGROUPS_ENAB yes ==使用 userdel 删除时,是否会删除初始群组
MD5_CRYPT_ENAB yes ==密码是否经过 MD5 的加密机制处理
通过以上说明,useradd这个命令会参考 /etc/default/useradd /etc/login.defs /etc/skel/* 等文件的内容
passwd
当使用useradd建立账号之后,预设情况下账号暂时是封锁的,无法登陆的,只有passwd设定密码后才能登陆
选项与参数
--stdin :可以透过来自前一个管线的数据,作为密码输入,对 shell script 有帮助
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与-l 相对,是 Unlock的意思
-S :列出密码相关参数,亦即 shadow 档案内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动密码
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接『日期』,shadow 癿第 7 字段,密码失效日期
一般用户设置密码的格式非常严格,大多使用PAM模块来进行密码的检验,这个管理的机制写在 /etc/pam.d/passwd 当中,而该档案与密码有关的测试模块
就是使用pam_cracklib.so 这个模块会检验密码的相关信息,取代/etc/login.defs内的PASS_MIN_LEN
设定密码还可以使用管道的方式 echo "abc543CC" | passwd --stdin vbird2
chage 这个命令也可以查看密码的相关参数信息的
-l :列出该账号详细密码参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改密码癿日期),格式 YYYY-MM-DD
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I :后面接天数,修改 shadow 第七字段(密码失效日期)
-m :后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M :后面接天数,修改 shadow 第五字段(密码多丽需要迚行变更)
-W :后面接天数,修改 shadow 第六字段(密码过期前警告日期)
chage -l vbird2 列出vbird的详细密码信息
chage还有一个功能,当用户第一个登入时,强制她们一定要修改密码才能使用系统资源,
例如:
useradd agetest
echo "agetest" | passwd --stdin agetest
chage -d 0 agetest 此时此账号的密码建立时间会被改为1970.1.1,所以有问题
再次登录的时候,就会强制你修改密码了
usermod 进行相关数据的微调
userdel 删除用户的相关数据,包括 :/etc/passwd, /etc/shadow /etc/group, /etc/gshadow /home/username, /var/spool/mail/username..
选项不参数: -r :连同用户的家目录也一起删除
如果想让某个账号暂时不启用的话,将/etc/shadow中的第八个字段设定为0就可以让该账号无法使用了,所有跟该账号相关的数据都会留下来
真正删除用户之前最好先执行 find / -user username 查询该用户创建了的所有文件
无论是 useradd/usermod/userdel ,那都是系统管理员所能够使用的指令,一般用户除了修改密码之外,还可以进行一些账号数据变更与查询指令的
finger
一般用户可以使用这个命令来查阅用户相关的信息,大部分是/etc/passwd这个档案里面的信息,
finger [-s] username 列出的信息包括账号,全名,家目录,shell,查询用户登陆主机的情况,信箱资料,计划资料
利用 vbird1 建立自己的计划档
echo "I will study Linux during this year." ~/.plan 接着使用finger vbird1就可以看到计划信息了
finger不加参数 , 找出目前在系统上面登入的用户与登入时间 除了显示这个信息之外,还会显示Office Phone等信息,这些信息是通过chfn来设定的
chfn 有点像 change finger的意思
-f :后面接完整的大名; -o :您办公室的房间号码; -p :办公室的电话号码; -h :家里的电话号码!
vbird1 自己更改一下自己的相关信息
chfn 接着等待用户输入
chsh 就是change shell 的简写
chsh [-ls]
选项与参数: -l :列出目前系统上面可用的shell ,其实就是 /etc/shells 的内容! -s :设定修改自己的 Shell 啰
无论是 chfn 不 chsh ,都是能够让一般用户修改 /etc/passwd 这个系统文件的,而这两个命令一定有SUID这个属性的,否则一般用户是不能修改passwd文件的
id
id 这个指令则可以查询某人或自己的相关 UID/GID 等等的值
新增与移除群组
groupadd
-g :后面接某个特定的GID ,用来直接给予某个 GID ~
-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
单单家里群组时,最好使用 groupadd -r 群组名的方式来建立啦
groupmod 与 usermod类似
选项与参数: -g :修改既有的 GID 数字;
-n :修改既有的组名
groupmod -g 201 -n mygroup group1
groupdel 删除群组
删除群组时必须要确认/etc/passwd内的账号没有与任何人使用该群组作为 初始化群组
gpasswd:群组管理员功能
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员) 例如 gpasswd [-A user1,...] [-M user3,...] groupname
-M :将某些账号加入这个群组当中!
-r :将 groupname 的密码秱除 例如 gpasswd [-rR] groupname
-R :让 groupname 的密码栏失效
:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow) 例如gpasswd groupname
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。
gpasswd -A vbird1 testgroup 将vbird1设置为testgroup 的群组管理员
gpasswd -a vbird3 testgroup 让vbird3设置成为testgroup组的成员
群组管理员可以设定多个,上面的vbird1就可以设定testgroup的群组管理员了,所以 vbird1 就可以自行增加群组成员啰,该群组成员就能够使用 newgrp 啰
测试:建立三个用户的共同开发目录
需要将这三个用户都加上一个共有的公有群组,接着在这个目录上设置为该群组,再将这个目录的权限设置为2770 ,其中的2代表SGID,也就是这三个使用者能够修改
对方的档案,这个SGID必须要存在,
那如果需要增加一个myuser1作为这个项目的助理,他需要有查看这个项目的内容,但不能修改这个目录内的任何数据,这样既不能修改目录的权限为2775,因为这样的话
其他人也能进入这个目录了,同时也不能将这个用户加入到公有的群组上,因为一旦加上,这个用户就可以修改这个目录内的内容了。
所以这个时候就需要加上ACL的使用了
传统的权限仅有三种身份,也就是(owner, group, others) 搭配三种权限 (r,w,x) 而已,没有办法为某一个使用者或某一个群组来设定特定的权限需求,此时就一定要使用
ACL这个机制了
ACL的机制主要是提供传统的owner,group,others 的 read,write,execute 权限之外的细部权限设定,ACL 可以针对单一使用者,单一档案或者目录来进行 r,w,x 癿权限规范,对
于需要特殊权限的使用状况非常有帮助
ACL主要可以针对以下这些方面来控制权限
使用者 : 可以针对使用者来设定权限
群组:可以针对群组为对象来设定其权限
默认属性mask 还可以针对在该目录下在建立新档案/目录时,规范新数据的默认权限
使用ACL必须要有文件系统的支持才行,目前绝大多数的文件系统都有支持 ACL的功能,包括 Ext3 Ext4 JFS XFS等等
查看本文件系统是否支持ACL可以执行 mount命令
mount命令 可以看到文件系统的大致情况,接着也可以由superblock内容去查询 dumpe2fs -h /dev/hda1
由mount单独查询,未必可以看到实际的项目,由于目前的distributions 常常会主动加入某些默认功能,在rhel预设的情况下(Default Default mount ) ,就会帮你加入acl的
如果没有默认加上acl,那么就要手动的加上acl的支持了,mount -o remount,acl / 这样就可以了,再执行mount就可以看到效果了,但是如果想要每次开机都生效,那么就
要写入到/etc/fstab中去
acl的命令有getfacl 和 setfacl
当设置好文件系统支持acl后,接下来可以利用 getfacl setfacl 来设定acl了
getfacl:取得某个档案/目录的 ACL 设定项目;
setfacl:设定某个目录/档案的 ACL 规范。
setfacl 指令用法
选项不参数:
-m :设定后续的 acl 参数给档案使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 设定参数;
-k :移除预设的 ACL 参数,关于所谓的『预设』参数于后续范例中介绍;
-R :递归设定 acl ,亦即包括次目录都会被设定起来;
-d :设定『预设 acl 参数』的意思!叧对目录有效,在该目录新建癿数据会引用此默认值
1. 针对特定使用者的方式:,例如针对 vbird1 癿权限规范rx:
原先的 -rw-r--r-- 1 root root 0 Feb 27 13:28 acl_test1
执行 setfacl -m u:vbird1:rx acl_test1
执行后的 -rw-r-xr--+ 1 root root 0 Feb 27 13:28 acl_test1
结果 权限部分多了个 + ,且与原本的权限 (644) 看起来差异很大!
再次执行 setfacl -m u::rwx acl_test1
结果 -rwxr-xr--+ 1 root root 0 Feb 27 13:28 acl_test1 使用者栏位为冒号代表设定该档案拥有者,所以root的权限变成了rwx了
设定的格式为 『 u:使用者:权限 』的方式来设定的啦,一个档案设定了ACL参数后,他的权限部分会多出一个 + 号,而且此时看到的权限与实际的权限很可能会有不一样
可以使用getfacl来进行查看
getfacl 指令用法
getfacl filename getfacl的选项几乎与 setfacl 相同
列出刚刚设定的acl_test1的权限内容
# file: acl_test1 ==说明档名而已!
# owner: root ==说明此档案的拥有者,
# group: root ==此档案的所属群组,
user::rwx ==使用者列表栏是空的,代表档案拥有者的权限
user:vbird1:r-x ==针对 vbird1 的权限设定为 rx ,与拥有者不同!
group::r-- ==针对档案群组的权限设定仅有 r
mask::r-x ==此档案预设的有效权限 (mask)
other::r-- ==其他人拥有的权限啰!
显示的数据前面加上 # 的,代表这个档案的默认属性,包括文件名、档案拥有者与档案所属群组。
底下出现的 user, group, mask, other 则是属于不同的使用者、群组与有效权限(mask)的设定值
Q2: Ubuntu | Linux加快开机启动
自从将公司电脑的Ubuntu系统升级到了Ubuntu 16.04 (之前是15.04), 每次开机竟然耗时2分钟左右, 简直不能忍! 咋能向Windows看齐(Windows都没这么慢好嘛), 话说以前的Macbook Pro高配开机只要2秒钟...
那么如何找出拖慢开机速度的元凶并将其禁用呢?
systemd-analyze有一些参数,大体上来讲就是一些功能, 可以用
来看看:
其中, 对我们比较有用的参数就是blame。
如果你平时使用git来进行版本控制, 那你应该知道有个命令叫
用git blame加文件名就可以看到文件中每一行最近是谁更改的。
同理, systemd-analyze blame就是显示开机启动项的时间, 从最慢依次列出。
可以看到, 最慢的启动项是NetworkManager-wait-online.service, 竟然用了30秒, 不能忍!
禁用之:
但是,后来的使用中,我又发现一个拖慢系统的启动项,叫 plymouth-quit-wait.service。这次用 disable 却不能将其彻底禁用。
只能用 mask 来禁用,也就是:
为什么呢?
因为 mask 这个 systemctl 命令的选项参数是比 disable 更强力的,可以用 man systemctl 来查看。
首先是 disable 的解释:
接着看 mask 选项:
看到 mask 选项的解释中有一句英语「This is a stronger version of disable, since it prohibits all kinds of activation of the unit, including enablement and manual activation.」
翻译过来就是:「这是一个增强版本的 disable,因为它阻止了所有激活这个单元的行为,包括启用和手动激活」。
可以看到执行了上面的 sudo systemctl mask plymouth-quit-wait.service 这句命令后的输出:
也就是说 mask 选项把 plymouth-quit-wait.service 直接软链接到了 /dev/null 这个著名的「黑洞」中去了,然后世界就清净了。
其实, 昨天我还禁用了两个启动项, 都是fstab中的, 用于挂载(mount)服务器上的nfs磁盘, 每一个竟然用了1分钟左右 (用systemd-analyze blame看到的):
用vim编辑器打开/etc/fstab文件(记得要加sudo哦, 不然不能修改此文件):
就是上图中
那两行, 表示
如何禁用呢?
在options那一列中加上 noauto即可, 表示不自动启动。
auto是automatic的缩写, 表示"自动"。而noauto就是not/no automatic的缩写, 表示"不自动"。
用man fstab来学习一下fstab中每一列的含义:
可以看到, 默认情况下(default中)是auto的, 也就是说默认情况下会在开机时自动挂载那两个nfs磁盘。
如此处理之后, 再次重启电脑:
这回, 电脑启动只要几秒啦!
所以, 如果想加快开机启动, 只要先用
列出开机启动项的时间, 然后禁用(用 systemctl disable 或 mask)那些很慢的即可。
linuxmask命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux masked、linuxmask命令的信息别忘了在本站进行查找喔。







