Linux用户管理详细介绍

发表于: lnmpa | 作者: darkmi | 日期: 2013/08/14 08:00
字号:

1.区分以下的linux和unix

AIX (IBM unix); HP_UX(HP unix);

SlorkWare(Linux); FreeBSD(博克利大学- unix);

Solaris(Sun公司的 unix); ubintoo(非州的linux);

SuSe(Novell公司的Linux); mandrake(台湾的Linux);

2.

sdd8: 第四块SCSI磁盘的第4个逻辑分区;

hdc9: 从IDE设备的主盘的第5个逻辑分区;

hda3: 主IDE设备的主盘的第3个主分区;

3.

:e! 恢复到最后一次保存后的状态;

:r /etc/passwd 读入文件passwd的内容;

(这是两个vi编辑器的命令。)

4.基本命令:

设置IP地址的三种方法:

#setup #service network restart 需重启网卡;

#vi /etc/sysconfig/network-scripts/ifcfg-eth0 需重启网卡;

#ifconfig eth0 192.168.1.1 netmask 255.255.255.0

(临时IP,立即生效,无需重启即刻生效);

用户管理

一、帐号文件

1、windows帐号文件:SAM文件;

SAM = security account management(安全帐号管理);

路径:/winnt/system32/config/SAM;

2、/etc/passwd 帐号文件

包含7项:

①登录名           (登录名)
②密码             (x是密码占位符,表示有密码,删除可直接登录)
③UID              (用户UID)
④GID              (组ID号,默认与UID相同)
⑤描述             (用户描述,存放用户的真实名)
⑥登录目录         (默认登录目录,指向家目录)
⑦/bin/bash        (登录后执行的首个shell)

以上7列均可修改,备注:

UID是系统中唯一标识用户身份的标记

0:超级用户UID,任何用户UID改为 0 就成了超级用户root

1~99: 系统帐号

100~499:系统预留帐号

500以上:普通帐号

UID默认500开始,可指定,一个UID可对应多个用户名

默认GID=UID,可指定

第7列为空时,系统默认为/bin/sh,修改为/sbin/nologin则不能登录

3、/etc/shadow 密码文件

包含9列:

①登录名
②md5方式加密的密码
③密码修改的天数  (从1970.1.1计算,最后一次修改口令的天数)
④密码的最短时间  (此段时间内不可修改口令,0表示随时改密码)
⑤密码有效期      (这些天后必须修改口令)
⑥密码警告期      (到期前多少天出现警告)
⑦密码宽限天数    (到期后密码的延长时间)
⑧密码的失效时间  (可用YYYY-MM-DD格式,也可减去1970.1.1的天数,)
⑨备用列

说明:第8项密码的失效日期如果早于系统当前时间,则用户不能登录;

查看shadow文件的帮助

#man shadow

二、帐号命令 (useradd,passwd,userdel,usermod)

1、useradd –à 新增用户

注意:用户名不能是纯数字

新增用户(指定参数):

#useradd
[-u UID]
[-c 描述]
[-d 家目录]
[-e 过期时间yyyy-mm-dd]
[-f inactive宽限天数]
[-g 初始组,只有一个;指定时,必须是已存在的组]
[-G 有效组1,有效组2,…可有多个,必须是已存在的组]
[-s shell]
用户名

查看新增用户的默认参数:

#useradd -D [-g 初始组] [-s shell] [-f inactive] [-e expire] 用户名

1.1、例如:

默认参数:

#useradd us (添加普通用户,用户名不能是纯数字的)

#adduser us (与useradd等效,少数linux版本支持)

指定参数:

#useradd  -d      /u          hy
               ↓      ↓          ↓
          (家目录)(用户ID)(用户名)

指定家目录为/tmp/us1

#useradd -d /tmp/us1 us1

指定UID为1000,家目录为/home

#useradd -u 1000 -d /home us1

注意:新增用户帐号默认被锁定,需运行passwd后才能被激活

1.2、用户信息配置文件

#vi /etc/default/useradd (新增用户的默认参数文件);

GROUP=100 (指定组)

HOME=/home (指定家目录)

INACTIVE=-1 (宽限天数)

EXPIRE= (账号过期)

SHELL=/bin/bash (登录执行的shell程序)

SKEL=/etc/skel (环境文件的模板文件)

#vi /etc/login.defs (登录用户的缺省配置)

17: PASS_MAX_DAYS 99999

18: PASS_MIN_DAYS 0

19: PASS_MIN_LEN 5 (密码的最小长度)

20: PASS_WARN_AGE 7 (提前警告天数)

25: UID_MIN 500 (最小UID)

25: UID_MAX 60000 (最大UID)

31: GID_MIN 500 (最小GID)

32: GID_MAX 60000 (最大GID)

46: CREATE_ HOME yes (是否创建新用户的家目录)

2、passwd –à 设置/修改密码

命令及参数:

#passwd 用户名

#passwd
[-d=delete] /清除密码(-d 放在用户名前后均可)
[-l=lock]   /锁定密码
[-u=unlock]   /解锁密码
[-uf=unlock force]/强制解锁
[-S]/检查指定用户的密码认证种类, 只有具备超级用户权限的用户才可使用

2.1、例如:

修改密码

#passwd us

清空密码

#passwd -d us 或者 #passwd us -d

锁定密码

#passwd -l us

解锁密码

#passwd -u us

强制解锁密码

#passwd -uf us

查看用户的密码状态

#passwd -S us

2.2、密码复杂方法:

将AMERICAN制成密码:[url=mailto:AM@ri31n]AM@ri31n[/url]

(大小写、特殊符号、字母、数字)

2.3、passwd命令对于普通用户和超级用户的用法区别:

普通用户修改密码的原则:(密码不少于6位);

对root用户来说:

#passwd →修改自己的密码

#passwd user →修改user用户的密码

#passwd user →加上此类([url=mailto:ב-’‘@’]ב-’‘@’[/url])特殊字符;

对普通用户:

$passwd →修改自己的密码

$touch /tmp/abc (以usera登录,创建文件abc);

3、userdel–à删除用户

#userdel usera (删除passwd,shadow,group,gshadow文件中的该帐号信息,但不删其家目录);

#userdel -rf usera (强制删除用户及其家目录);

说明:/tmp/abc文件,所有者及所属组成了UID及GID;

4、usermod––〉修改账户信息:

#usermod -g 组名 用户名 (改变初始组)

#usermod -G 组名1[,组名2…] 用户名 (可添加到多个有效组)

例:

#usermod -G root,bin,deamon us1

#usermod -l 新登录名 旧登录名 (改变用户登录名)

#usermod -L 用户名 (锁定用户,即shadow中的用户密码前加!号)

#usermod -U 用户名 (激活用户,即取消shadow中的密码前的!号)

#usermod -c ‘my new uid’ 用户名 (修改第5项描述内容)

#usermod -e 2007-07-01 用户名 (expire失效日期);

#usermod -p 112233 用户名 (修改为crypt方式的密码)

三、组帐号命令:(groupadd,gpasswd,groupdel,groupmod,groups);

组帐号文件:(/etc/group,/etc/gshadow);

#groupadd 组名 (新增组,组名不能大写)

#groupdel 组名 (删除组)

#groupmod -n 新组名 旧组名 (修改组名字)

#groups 用户名 (查看用户加入了哪些组)

#gpasswd 组名 (设置组密码)

#newgrp 系统已有的组名 (临时改变用户的初始组到新组,相当于bash了,需要多执行一次exit才能退出)

#vi /etc/group (组文件group包含四项)

root : x : 0 : root

(组名) (密码) (组ID) (组成员)

注意:任何用户都默认为自身初始组的组成员;

5、查看用户uid、初始组、有效组的信息:

#id 用户名

uid=500(usx) gid=500(usx) groups=0(root)

(uid:用户的系统id,gid:初始组,groups:有效组);

#finger 用户名

Login: usx(登录名) Name: public user (真实名,描述);

Directory: /home/usx(家目录) Shell: /bin/bash (登录执行的程序);

Last loing time on tty (最后登录的时间和控制台号);

(测试了一下,centos不支持该命令。)

6、改变用户的身份(su及sudo):

$su root (改变普通用户为root,但环境文件不变);

$su - root (- 含义:将root用户及环境文件都改变);

#su - user (切换用户身份,同时用户工作环境也一同改变);

$su - root (普通用户输入密码才能切换成超级用户);

注意:超级用户切换成普通用户不需密码,反之,则需要密码;

超级用户可把其它虚拟控制台的用户踢出系统;

#ps -aux

#kill -9 PID(进程号)

#wc -l /etc/passwd (统计行数,passwd文件中,一行代表一个用户);

快捷键的用法:

Tab键, 用于命令补全功能;

上下键, 用于调出历史命令;(.bash_history)

+u:删除命令行光标前的字符;

+k:删除命令行光标后的字符;

7、用户的环境文件:

(私有: /.bashrc,/.bash_profile,/.bash_history,/.bash_logout);

(公有: /etc/bashrc,/etc/profile 对所有用户有效);

私有环境文件:

#ls -a

.bashrc;(#bash或登录时调用) .bash_profile;(登录时才调用)

.bash_history;(历史命令) .bash_logout; (退出时清屏)

#vi /root/.bashrc

alias hhh=”cd ~” (~波浪号代表用户的家目录);

#bash (hhh即可生效,bash是命令解释程序);

#bash (一种shell,命令解释程序,执行多次bash,就是打开多次新命令行,需执行多次exit才能退出);

公有环境文件:

#ls /etc/bashrc /etc/profile

#vi /etc/bashrc

alias yyy=’cd /etc/sysconfig’

#bash (所有用户执行bash后均有效);

8、alias别名;

alias 作用:用简单字符代替长串的字符命令;

#alias (查看系统中的别名);

以rm的别名为例:

#rm file (系统提示(y/n),因为:alias rm=’rm –i’);

#unalias rm (取消别名);

#rm file (则系统不再提示);

#alias aa=“ifconfig” (定义临时命令别名,退出则失效);

#aa (执行aa命令等效于ifconfig命令);

#alias bb=’cd /etc/sysconfig’ (别名bb改变路径);

同名命令的执行顺序:

同名的内部命令–à 同名的别名命令–à同名的外部命令;

系统路径变量:

在windows中:属性 → 高级 → 系统变量 (PATH)

执行cmd命令,可调出命令窗口, 说明↗

#echo $PATH (查看系统变量PATH中的路径值);

#which ifconfig (查找命令的路径);

/sbin/ifconfig (/sbin在root的$PATH中);

#cp /sbin/ifconfig /bin (拷贝后普通用户也可执行此命令);

#ls -d skel (查找目录skel);

#vi /etc/skel (环境文件的系统模板);

#vi /etc/issue (登录前的提示信息);

Today is \d

Now time is \t

#vi /etc/motd (登录后的提示信息,motd=message of today);

This is new user

9、显示用户信息

id user

cat /etc/passwd

总结:

用户管理的配置文件:

~/.bashrc

~/.bash_profile

~/.bash_logout

~/.bash_history

/etc/bashrc (全局bash环境变量文件)

/etc/profile (全局环境变量文件)

/etc/passwd (存储帐户信息)

/etc/shadow (存储帐户信息(含有密码信息) )

/etc/group (存储组信息)

/etc/gshadow (存储组信息(含有密码信息) )

/etc/issue (显示系统的版本信息)

/etc/motd (登录后的提示信息)

/etc/skel (环境文件的模板目录)

/etc/login.defs (账户预设的信息参数文件)

/etc/default/useradd (预设帐户环境文件)

[整理自网络]

切换主题切换主题
返回顶部