我和linux的第二十九天
一本书断断续续看了近一个月时间,有收获,有枯燥,总体感觉linux是个操作性的东西,只看书籍有些乏味,中间有放弃的想法,想放到以后再学习,还是断掉这种念头,坚持下去。
主机的具体权限规划:ACL(Access Control List),目的是提供传统的owner、group、others的read、write、execute权限之外的具体权限设置。ACL可以针对单一用户、单一文件或目录来进行r、w、x的权限设置。
ACL的设置:
setfacl [] 目标文件夹,设置某个目录/文件的ACL规定,针对单一用户u:用户:权限,针对单一用户组g:用户组:权限,针对有效权限m:权限,-m设置后续的acl参数给文件使用,不可与-x合用、-x删除后续的acl参数,不可与-m合用、-b删除所有的acl设置参数、-k删除默认的acl参数、-R递归设置acl,亦即包括子目录都会被设置、-d设置默认acl参数。
getfacl filename,取得文件/目录的ACL设置项目,参数设置与setfacl相同。
用户身份的切换:
su:简单身份切换命令,- :代表使用login-shell的变量文件读取方式来登录系统、单纯使用“su”切换身份,都取得变量设置方式为non-login shell的方式,这种方式下很多原本的变量不会被改变。
su用法:
若要完整地切换到新用户环境,必须要使用“su - username”或“su -l username”,才会连同PATH/USER/MAIL等变量都转成新用户的环境;
如果进行要执行一次root的命令,可以利用“su - -c “命令串””的方式来处理;
使用root切换成为任何用户时,并不需要输入新用户密码。
sudo的执行流程:
1.当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限;
2.若用户具有可执行sudo的权限后,便让用户输入用户自己的密码来确认;
3.若密码输入成功,便开始进行sudo后续接的命令;
4.若欲切换的身份与执行者身份相同,不需要输入密码。
除了root之外的其他账号,若想要使用sudo执行属于root的权限命令,则root需要先使用visudo去修改/etc/sudoers,让该账号能够使用全部或部分的root命令功能。
Ⅰ.单一用户可进行root所有命令与sudoers文件语法
visudo或vim /etc/sudoers
root ALL=(ALL) ALL 约100行
xeyes ALL=(ALL) ALL 新增一行
用户账号 登录者的来源主机名=(可切换的身份) 可执行的命令
Ⅱ.利用用户组以及免密码的功能处理visudo
visudo
#wheel ALL=(ALL) ALL约100行,将#去掉
usermod -a -G wheel user1 将user1加入wheel的支持
Ⅲ.有限制的命令操作
visudo
username ALL=(root) /usr/bin/passwd
Ⅳ.通过别名设置visudo
Ⅴ.sudo的时间间隔
Ⅵ.sudo搭配su的使用方式
PAM模块:PAM可以说是一套应用程序编程接口(Application Programming Interface,API),它提供了一连串的验证机制,只要用户将验证阶段的需求告知PAM后,PAM就能够回报用户验证的结果(成功或失败)。
例:执行passwd后,这个程序调用PAM的流程:
1.用户开始执行/etc/bin/passwd这个程序,并输入密码;
2.passwd调用PAM模块进行验证;
3.PAM模块会到/etc/pam.d中寻找与程序(passwd)同名的配置文件;
4.依据/etc/pam.d/passwd内的设置,引用相关的PAM模块一步步进行验证分析;
5.将验证结果(成功、失败以及其他信息)回传给passwd这个程序;
6.passwd这个程序会根据PAM回传的结果绝对下一个操作(重新输入密码或通过验证)。
linux主机上的用户信息
查询用户:w,who,last,lastlog
用户对谈:write,mesg,wall
用户邮件信箱:mail username@lacalhost -s “邮件标题”
寄信mail xeyes -s “nice to meet you”
Hello,master
Nice to meet you in the network.
You are so nice.byebye!
. 小数点结束
收信mail
&?
1.root的UID与GID是多少?而基于这个理由,我要让test这个帐号具有root的权限,应该怎么作?
A.root的UID和GID是0,可以将/etc/passwd文件中test账号的UID、GID改为0。
2.假设我是一个系统管理员,我有一个用户最近不乖,所以我想暂时将他的帐号停掉,让他近期无法进行任何操作,等到未来他乖一点之后,我再将他的帐号启用,请问:我可以怎么做比较好?
A.将/etc/passwd的shell写成/sbin/nologin,即可让该帐号暂时无法登入主机;将/etc/shadow内的密码位,增加一个*号在最前面,这样该帐号亦无法登入;将/etc/shadow的第八位关于帐号取消日期的那个,设定小于目前日期的数字,那么他就无法登入系统了。
3.我在使用useradd的时候,新增的帐号里面的UID, GID还有其他相关的密码控制,都是在哪几个文件里面设定的?
A./etc/login.defs,/etc/default/useradd。
4.我希望我在设置每个帐号的时候(使用useradd),默认情况中,他们的主文件夹就含有一个名称为www的子目录,我应该怎么做比较好?
A.由于使用useradd的时候,会自动以/etc/skel为默认主文件夹,所以可以在/etc/skel里
面新增加一个名称为www的目录。
5.简单说明系统帐号与一般帐号的区别?
A.系统账号可以管理一般账号,具有修改、删除、移动他人账号的权限,而一般账号只能操作系统账号所允许的操作命令。小于500(UID)为系统账号。
6.简单说明,为什么linux建立用户时,他会主动的帮用户建立一个用户组,而不是使用/etc/default/useradd的设置?
A.不同的linux distributions对于用户组group的建立机制不同。主要的机制分为:
Public group schemes:用户将会直接被给予一个系统指定的群组,一般来说即是users,可
以SuSE Server 9为代表;
Private group schemes:系统会建立一个与帐号一样的群组名称!以redhat为例!
7.新建一个名称为alex,他所属用户组组为alexgroup,预计使用csh,他的全名为"Alex
Tsai",且他还得要加入users用户组当中。
A.groupadd alexgroup;useradd -c “Alex Tsai” -g alexgroup -G users alex。
8.由于种种因素,导致你的用户主文件夹以后都需要被放置到/account这个目录下。请问,我该如何做菜可以让使用useradd时默认的主文件夹就指向/account?
A.编辑/etc/default/useradd,将里面的HOME=/home改成HOME=/account。
9.我想要让xeyes这个用户,加入user1,user2,user3这三个用户组,且不影响xeyes原本已经支持的次要用户组时,该如何操作?
A.usermod -a -G user1,user2,user3 xeyes。
本文出自 “开忈的主题” 博客,谢绝转载!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。