Solaris使用与管理之实践(Day 1)

本文介绍了Solaris系统的基本信息及用户管理方法,包括用户添加、默认设置修改等内容,并详细记录了一次用户添加失败的排查过程,最终确定问题是由于磁盘空间不足导致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

终于开通了系里的小型机,登录后显示SunOS 5.9,查了一下,对应的是现在的Solaris 9这个版本的操作系统,据说这个机器花了十几万,不使用太可惜了。而且发现硬盘超大、CPU超多,哈哈,四个CPU。

相关信息可以用: psrinfo -v查看CPU, iostat -E查看硬盘信息。

今天去图书馆借了两本书,开工了,准备把它拿下,初步有几个打算:

(1)建立一个学生学习的WIKI或者BLOG;

(2)建立一个上传用的FTP;

(3)利用它来进行NS2仿真或者计算应该很好!

在学习中,发现solaris与linux还是有小小的差别,会在以后中慢慢列出来。

(1)Linux下,添加用户后,默认对应的用户目录在/home下,如/home/zz,而对应着Solaris下的/export/home。

Solaris的/home有着特殊的功能,主要用来做autofs,建议不要使用。我在home下建立目录,提示出错:

root@--help # mkdir fanzz
mkdir: 创建目录 "fanzz" 失败;操作不可应用

解决方法也可以,但如上所述,不建议如此使用:

# /etc/init.d/autofs stop
# umount /home

先停止autofs服务,然后umount即可。

先还是从用户管理来体验吧,可以查看/etc/passwd文件来找到用户相关信息;可以用usermod修改用户信息;

(2) useradd –D

用来查看用户添加用户时采取的默认设置,如用户根目录,即/home,在我的机器上显示:

root@--help # useradd -D
group=other,1  project=default,3  basedir=/home
skel=/etc/skel  shell=/bin/sh  inactive=0
expire=  auths=  profiles=  roles=

用这个就是改默认目录的:

root@--help # useradd -D -b /tmp
group=other,1  project=default,3  basedir=/tmp
skel=/etc/skel  shell=/bin/sh  inactive=0
expire=  auths=  profiles=  roles=

(3)用户和用户组的权限信息在/etc/passwd和etc/group下。

和每一个用户相关的有一个ID叫UID,必须小于2147483647,UID相当于用户的KEY。

UDI分配表:0~99用于root, daemon,bin,sys,etc是系统账号。其中root的UDI为0,daemon的UID=1。

(4)每个用户都有一个默认的工作环境设置,类似于DOS下的环境变量,其设置通常是在用户默认目录下的一个文件,如.login, .cshrc, .profile等。通常可以从/etc/skel/目录下拷贝local.cshrc, local.login, local.profile到用户的目录下。

#cp /etc/skel/local.cshrc /home/zz/.cshrc

#cp /etc/skel/local.login /home/zz/.login

#cp /etc/skel/local.profile /home/zz/.profile

然后相应进行修改。此时必须先为每一个用户初始化文件设置允许,即:

#chmod 744 /home/zz/.*

(5) 不知道做了什么操作,最后添加用户时,竟然不成功,显示错误:

UX: useradd: ERROR: Cannot update system files - login cannot be created.

在网上搜索,信息很少,但是berkeley大学的网站(http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?useradd+1)显示一个权威说法,出现这种错误是因为/etc/passwd或者/etc/shadow不存在。

     The following indicates that the /etc/passwd or  /etc/shadow
     files do not exist:

     UX: roleadd: ERROR: Cannot update system files - login cannot be created.

但是实际上这两个文件存在,我只是试图修改它,但是提示说为只读文件。

尝试办法:

A. reboot机器,无效;

B. 用ls -l查看文件/etc/passwd文件的属性,显示:-r--r--r--,根据网上查询结果,用chmod修改其属性,即: chmod 744 /etc/passwd,chmod 744 /etc/shadow,仍然无效。

求解答案中…… [mailme]  //最后知道是因为磁盘空间满,导致添加用户失效。

C. 继续查找,发现一个最接近的答案,首先用pwconv来检查口令文件的完整性,显示错误如下:

# pwconv
/usr/bin/pwconv: Unexpected failure. Conversion not done.

D. 又一个接近的答案,来自于maillist:

Hi guys, Looks like my / file system is corrupt and needs a good checking, so I will most probably take the machine down to single-user and check and reboot. This should fix it up. Suggestions were:
1. permissions on passwd and shadow files
2. full / file system
3. corrupt useradd file
4. missing files
5. truss -o /tmp/useradd.truss -f useradd xxxxxxxx (Good stuff!)

上面的truss是用来trace系统调用的,-o表示跟踪结果输出到文件中,-f表示trace的对象,即在跟踪useradd失败时产生的错误信息。又在网上一阵狂搜,发现原因可能与上面第2点,即磁盘空间满了有关。按照网上提供的方法,用df - h查看,晕:

文件系统               大小   用了   可用 容量      挂接在
/dev/md/dsk/d0          14G    14G    17M   100%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                    15G   168K    15G     1%    /var/run
swap                    15G    32K    15G     1%    /tmp
/dev/md/dsk/d7          30G   8.3G    21G    29%    /data1
/dev/md/dsk/d5          45G   5.5G    39G    13%    /opt
/dev/md/dsk/d8          38G    38M    37G     1%    /data2

这个系统不知道多久没人用,可能又安装了一些数据库什么的,所以我用了没两天就这样。终于找到原因了,接下来就是考虑如何给磁盘瘦身了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值