1、 用户帐号
文件: /etc/passwd、 /etc/shadow 、 /etc/group、/etc/default/passwd。passwd只包含用户帐号信息,不存储密码。/etc/shadow存储账户密码、密码控制策略等信息,包括如下字段:loginname、password、lastchg(最后一次改变日期)、min(最短修改时间)、max(最大修改时间)、warn(过期前多少天警告)、inactive(多少天不登陆禁用)、expire(哪天过期)。/etc/default/passwd默认密码策略文件,如果该文件与/etc/shadow设置冲突则以shadow配置为最后生效,maxweeks:密码最长有效期 minweeks 修改密码最短时间间隔 passlength 密码最少长度 warnweeks 密码过期前多少天提示(默认无此选项)
命令:useradd 、usermod、userdel、groupadd、groupmod、groupdel、passwd、id、groups。对于文件的chgrp、chown、chmod,系统的chroot。
在/usr/sadm/bin下有两个命令:smuser、smgroup基于smc方式管理的命令,如
/usr/sadm/bin/smuser list -- -n fukeyun 查看用户fukeyun的信息。这两个命令较少用。
这块没什么好记录的,都是基础,另外注意的是用户的shell在solaris中有6个:/bin/sh、/bin/ksh、/bin/csh、/bin/zsh、/bin/bash、/bin/tcsh。
2、 用户登录
text mode的登录只要创建好账户和配置密码即可登录,主要是CDE和JDS图形界面的登录,初次接触solaris的人会在这上面郁闷一会儿:像linux一样创建用户帐号并设置密码,却无法用CDE和JDS图形界面登录。
呵呵,先说说登录的一些东西,最后解决上面的问题。
CDE、JDS登录:
/usr/dt/bin/Xsession 这是一个脚本,不是二进制文件,是登录管理器的配置脚本,一般不建议编辑它,会调用用户的$HOME/.dtprofile文件。
$HOME/.dtprofile 用户登录环境配置文件,我查看了此文件,基本为注释说明,只有一个配置项:DTSOURCEPROFILE=true,含义是用户的$HOME/.login或$HOME/.profile成为启动进程的一部分,出错则无法登录(日志在$HOME/.dt/startlog)。
$HOME/.dt 用户登录配置文件和目录,相当于windows系统下的用户目录,可以删除是用户登录时获得一个全新的桌面界面。.dt目录下面的文件是桌面的一些配置文件,理解windows用户目录就可类似理解。
禁用solaris的注册提示(每个新用户登录时都会提示):
/etc/default/solregis 设为:DISABLE=1
现在回答前面说的的问题,解决方法就是下面过程,原因就是权限问题。
1、创建目录/export/home/fukeyun
2、 创建一个用户,并指定home目录为/export/home/fukeyun
3、 将/export/home/fukeyun目录的属主和组指定为刚才创建的用户和组并赋予相应权限
最后说下/etc/default/login文件,默认启用三个变量:控制台变量、密码请求变量、shell更改变量。
CONSOLE=/dev/console root只能从控制台登录,如果注释改行,表示root可以从任何设备登录,如果CONSOLE=root 表示root不能登录,只能普通用户登录。如果CONSOLE=/dev/term/a,则定义root只能从a终端登录。
PA×××EQ=yes,表示所有新创建的还没设置密码的用户第一次登录时系统要求输入一个新密码,如果为NO,表示允许空密码,当然该项对root用户无效。
对其它的选项没有过多研究,不过login文件中从注释说的很明白。其中要提下SUPATH,该变量是su 后root的变量环境。
这里也说下root的ssh登录问题,默认root是不可以ssh登录的,要使root登录进行如下操作即可:
注释掉/etc/default/login文件的CONSOLE=/dev/console
修改如下文件
重启sshd服务 # svcadm restart ssh 或按下图操作也可
3、 登录shell环境
所有用户的登录环境文件:/etc/profile 、 /etc/.login,这两个文件会检查磁盘配额、登录消息(/etc/motd)
用户环境配置文件:$HOME/.profile 、$HOME/.kshrc或cshrc等、/etc/skel
4、 监控系统访问
用户的登录状态:logins命令,如logins 显示所有用户,logins -xu 所有用户的扩展信息,logins -p显示没有密码的用户,logins -x -l 用户名 显示单个用户信息
本地用户登录查看:who
显示登录到本地或远程主机的用户列表:rusers ,需要启动/usr/lib/netsvc/rusers/rpc.rusersd守护进程,即rpc.rusersd守护进程对rusers命令作出回应。
who和rusers的区别:who查看本地和远程登录到本地的连接,rusers查看本地和本地登录到远程的连接。
查看用户账户信息:finger
登录记录:last
last fukeyun 用户帐号fukeyun登录情况
last reboot -n 5 最新5次重启记录
失败登录尝试
login命令调用passwd和shadow两个文件进行用户密码认证,如果有错误则记录在/var/adm/loginlog(需要手工创建)中。
帐号的历史操作记录
启动记录命令 /usr/lib/acct/accton /var/adm/pacct
查看:lastcomm 用户名
记录su的操作记录
修改/etc/default/su文件
SULOG=/var/adm/sulog
#CONSOLE=/dev/console 表示su无论失败成功都会被记录在/var/adm/sulog文件中,为默认配置。
SULOG=/var/adm/sulog
CONSOLE=/dev/console 表示su成功则输出到console,su失败则记录到/var/adm/sulog,此时sulog文件中全部为失败的记录。
5、 控制访问
禁止本地所有帐号登录除root外:
#touch /etc/nologin 可在该文件中输入描述性文字
solaris系统在执行与登录进程有关的操作时会检测是否存在/etc/nologin文件,如果存在则只有root帐号可以登录,其它帐号登录时会出现nologin文件的内容提示并拒绝用户登录。类似于touch /unconfigure
远程访问,这里讨论的是不需要密码的信任访问。
两个文件:/etc/hosts.equiv $HOME/.rhosts ,默认这两个文件没有,需要手动创建。OS检查顺序,先hosts.equiv,后.rhosts。hosts.equiv文件作用于整个系统,可以访问整个OS资源,.rhosts作用于用户单环境,访问用户许可的资源。
文件语法:两个文件的语法格式一样。基本语法为:“主机名或IP 用户名“,用户名可以不写,"+" 指任何主机和用户,“-”表示该主机和用户不许进行远程存取。NO_PLUS表示不允许用加号。对“.rhosts”文件来说,当无用户名时,表示远程主机上的任何用户都可以远程存取本机,但是本地和远程主机上的用户名必须相同。hosts.equiv为空不表示任何含义。
语法还有如下两个:
+@group1 网络组中的所有主机都允许登入
-@group2 网络组中的所有主机都不允许登入
其它注意:
如果远程访问本地的root用户,则本地主机不会检查hosts.equiv文件。
非root的远程访问用户,则本地的passwd文件中必须有相同的用户名。
.rhosts文件可以信任root用户和非root用户,只要passwd文件中有对应账户即可。
.rhosts和hosts.equiv两个文件是独立的,而且修改后不需要重启系统或服务。
其它的一些特点(来自网络)
1.用户主目录内的“.rhosts”文件内容是受信任的{主机~用户}关系对。与“hosts.equiv”内的受信任主机有些类似,但它却给了更精细 的控制。与“hosts.equiv”相比,不是授予某一特定主机上的所有普通用户信任关系,而是授予特定主机上的某一特定账号以信任关系。受信任主机上 的用户并不需要在本地主机上有账号。
2.“/etc/hosts.equiv”先于“~home/.rhosts”进行许可检查,只要找到匹配的项目,检查就马上停止。然而当用户是root时,只检查“~home/.rhosts”。
3.当在“/etc/hosts.equiv”中使用一个减号(-),所有主机上的所有用户都不被信任,但如果又包含一个主机在“~home/.rhosts”内,那么该机上所有用户仍然可以不用密码登录本地主机。
4.一台远程主机一旦被加入“/etc/hosts.equiv”中,就不能限制其上的所有用户登录本地主机,所以存在很大的安全隐患。
5.“/etc/hosts.equiv”文件中如果加入了一台远程主机和一个用户,在该机上的那个用户(非root用户)就可以用rlogin登录本地机上的所有非root账号,而且不需要密码。
6.上述两个文件里所包含的主机称为受信任主机,既可以是远程主机,也可以是本地主机。在这两个文件里加入本地主机,已经登录上本地主机的用户可以再次登录本地主机,而无需密码(root用户仍需密码)。
7.出于安全的原因,“/etc/hosts.equiv”文件不允许远程主机的超级用户不输入密码就登录到本地主机。系统管理员应该保持该文件为空,或谨慎使用。
实例
由于目前只有一台solaris,没法实际操作,有条件后补充。
#rcp 10.98.101.79:/usr/bin/wol /export/home/crystal 这是网络上的一条操作
=================================================
周一开会回来,头晕脑胀,有前线反应打印机无法打印东西了。我脑子转得飞快,重启print spooler服务,一般解决打印机可安装驱动但无法打印情况,或者打印机重启,清除内容任务造成的假死机现象。
打开运行,输入cmd,回车,然后services.msc找到“Print Spooler”一项,重启服务,等等,现在是未启动?启动试试。好了,成功启动,没有错误信息。接着去打印机和传真中,里面没有任何打印机,这是正常的,刷新一下,出来了,包括添加的打印机。里面有一个任务,刚想打开,My God!弹出一个错误报告,说“Spooler SubSystem App遇到问题需要关闭,我们对此引起的不便表示抱歉”。TMMD,遇到困难了哦!我很悲哀地想,该重装系统了吧。不然今天那么多事情,怕是做不完了。其实我只是心里作用,重装是快捷,但是这个解决办法太耗时间。有没有更好的呢?我继续使用某著名搜索工具。
我慢慢找,慢慢找,被我看到了一个信息:
1.控制面板-管理工具-服务-print spooler-右击属性-手动-停止。
2.用regedit.exe打开注册表,找到 HKEY_LOCAL_MACHINE\SYSTEM\controlset001\controol\print\printers\删除非本地的所有打印机(只留本地或所在网络中的打印机)。
3.将print spooler设置为启动。
4.查看cpu使用率为00,打印机使用也正常了。你试试看。
这个信息非常有参考价值,马上行动,删除了添加的所有打印机名称,然后重新安装打印机驱动,过程没有出错,添加打印机可以找到需要的型号,测试?OK了。解决啦