我和linux的第二十九天

    一本书断断续续看了近一个月时间,有收获,有枯燥,总体感觉linux是个操作性的东西,只看书籍有些乏味,中间有放弃的想法,想放到以后再学习,还是断掉这种念头,坚持下去。

 

主机的具体权限规划:ACLAccess Control List),目的是提供传统的ownergroupothersreadwriteexecute权限之外的具体权限设置。ACL可以针对单一用户、单一文件或目录来进行rwx的权限设置。

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文件语法

visudovim /etc/sudoers

root ALL=(ALL) ALL 100

xeyes ALL=(ALL) ALL 新增一行

用户账号 登录者的来源主机名=(可切换的身份) 可执行的命令

.利用用户组以及免密码的功能处理visudo

visudo

#wheel ALL=(ALL) ALL100行,将#去掉

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.rootUIDGID是多少?而基于这个理由,我要让test这个帐号具有root的权限,应该怎么作?

A.rootUIDGID0,可以将/etc/passwd文件中test账号的UIDGID改为0

2.假设我是一个系统管理员,我有一个用户最近不乖,所以我想暂时将他的帐号停掉,让他近期无法进行任何操作,等到未来他乖一点之后,我再将他的帐号启用,请问:我可以怎么做比较好?

A./etc/passwdshell写成/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.系统账号可以管理一般账号,具有修改、删除、移动他人账号的权限,而一般账号只能操作系统账号所允许的操作命令。小于500UID)为系统账号。

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


本文出自 “开忈的主题” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。