目录
用户身份切换
su (switch user)
切换用户:su zhangsan 切换用户
切换用户:su - zhangsan 切换用户,切换家目录;
注:不加参数-,只能切换用户;而加上参数-不仅可以切换用户,还可以切换到对应用户的家目录下;
root用户切换到其它用户都输不需要密码的,而普通用户之间的切换以及往root用户切换都是需要输入密码
直接使用su -命令表示切换到root用户
尽管我们可以通过su命令切换用户,但是在系统中很多命令的执行普通用户都是没有权限的;我们可以通过下面的命令来执行命令:
su - -c ‘mount /dev/cdrom /mnt’ 以root用户的身份,执行-c后面的命令
注:-c参数表示以某个用户的身份去执行命令,而并不需要切换到该用户
sudo (super user do)
在系统中,除了root用户具有最高的权限之外;通常会划分一些管理员进行管理系统;但是在系统中有很多操作是需要root权限才可以操作的,如果只是简单通过su到管理员,有会被提示需要root用户的密码;而在一个企业中root用户的密码往往是不会轻易泄露的,这种情况下就需要使用sudo命令;sudo命令的原理就是将某一个命令的使用权赋予给某一个用户
查看sudo配置文档:vim /etc/sudoers
编辑sudo配置文档,为用户赋予命令使用权:
编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出
执行sudu命令:sudo mount /dev/cdrom /mnt
注:当我们使用普通用户执行sudo命令的时候,首先会要求你输入该用户的密码;以证明你当前身份的真实性;如果密码验证通过命令将会被执行;并且该条命令会在缓存中保留五分钟,当我们下次再执行这条命令的时候系统就不会要求你输入密码了
sudo -k 清空密码缓存
设置用户使用命令不需要密码验证:
注:当加上NOPASSWD之后,用户使用sudo执行命令的时候就不需要输入密码确认身份了
查看root赋予给当前用户使用权的命令:sudo -l
用户的特殊shell与PAM模块
特殊的shell:/sbin/nologin
在Linux中,如果用户的shell被设置成了/sbin/nologin,那么其它所有的用户都不能切换到该用户中;连同这个用户自己也无法登陆系统;/sbin/nologin的作用是可以给用户提供登录到主机中的服务,而不允许用户登录到系统;从而保护了系统的安全
PAM模块简介
Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式. 换句话说,不用(重新编写)重新编译一个包含PAM功能的应用程序,就可以改变它使用的认证机制. 这种方式下,就算升级本地认证机制,也不用修改程序.
PAM使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security下,以加载动态库的形式进行;因为在Linux系统中很多服务是没有验证功能的,当我们要使用该服务的时候需要我们输入用户名、密码等信息进行验证;当这些服务收到用户发送过来的验证信息时,会把用户名、密码等信息发送给PAM;PAM根据自己的配置文件调用不同的模块去实现验证;像我们使用su命令时,系统会提示你输入root用户的密码.这就是su命令通过调用PAM模块实现的.
查看PAM所有的配置文件:ls /etc/pam.d
查看PAM配置文件的内容:vim sshd (以远程连接的配置文件举例)
由上图可以将配置文件分为四列,
第一列代表模块类型
第二列代表控制标记
第三列代表模块路径
第四列代表模块参数
查看系统所有的PAM模块:ls /lib/security
PAM的模块类型:
Linux-PAM有四种模块类型,分别代表四种不同的任务
它们是:认证管理(auth),账号管理(account),会话管理(session)和密码(password)管理,一个类型可能有多行,它们按顺序依次由PAM模块调用.
PAM的控制标记:
PAM使用控制标记来处理和判断各个模块的返回值.(在此只说明简单的认证标记)
模块路径:
模块路径.即要调用模块的位置. 如果是64位系统,一般保存在/lib64/security,如: pam_unix.so
同一个模块,可以出现在不同的类型中.它在不同的类型中所执行的操作都不相同.这是由于每个模块针对不同的模块类型,编制了不同的执行函数.
模块参数:
模块参数,即传递给模块的参数.参数可以有多个,之间用空格分隔开,如:
password required pam_unix.so nullok obscure min=4 max=8 md5
常用模块简介
实例:
1、pam_securetty.so
限制root从tty1,tty2,tty5登录(无实际意义,只是演示pam_securetty的用法)
在/etc/pam.d/login中添加如下一行
在/etc/pam.d/securetty中将tty1,tty2,tty5注释即可
之后使用root用户再次登录,就会出现
这么做其实并不是只限制root用户,也可以将其它用户用此方法来限定,当系统安装完成后,使用此方法来增强一下安全性。
Linux主机上的用户信息传递
查询用户:w、who、last、lastlog
查看当前有哪些用户登录系统:w 或者 who
查看历史登录的用户信息:last 或者 lastlog
用户对谈:write、mesg、wall
Linux中可以让多个用户同时登录到系统,在这些用户之间同样可以进行信息的交流;
使用write演示用户之间发送信息:write zhangsan tty2
查看用户接收信息是否开启:mesg
关闭用户接收消息:mesg n
开启用户接收消息:mesg y
注:只能拒收非root用户的消息,root发来的消息还是能收到
使用wall演示发送广播信息:
wall “xxxxxxyyyyyyyy”
注:使用wall发送的广播信息,登录系统的每个用户都能收到
用户邮件信箱:mail
在Linux中默认都是开启了邮箱的服务
查看邮件运行状态:service sendmail status
给用户发邮件:echo “xxxxxxx” | mail -s “hello zhangsan” zhangsan
查看用户的邮件信息:mail -u zhangsan
原创文章,转载请注明出处