blog » Linux » Linux用户管理详细介绍

Linux用户管理详细介绍

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项:

  1. ①登录名           (登录名)
  2. ②密码             (x是密码占位符,表示有密码,删除可直接登录)
  3. ③UID              (用户UID)
  4. ④GID              (组ID号,默认与UID相同)
  5. ⑤描述             (用户描述,存放用户的真实名)
  6. ⑥登录目录         (默认登录目录,指向家目录)
  7. ⑦/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列:

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

说明:第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 (预设帐户环境文件)

[整理自网络]

This post has already been read 1164 times!

Related posts

RSS 2.0 | leave a response | trackback

发表评论