回顾内容
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.dd 删除当前一行;
l0ddp 剪切包括当前行的以下10行再粘贴;
yyp 复制一行再粘贴;
ddp 与下行换位置,剪切再粘贴;
:e! 恢复到最后一次保存后的状态;
:r /etc/passwd 读入文件passwd的内容;
:10,20 s/a/b/g 使用全局方式把第10行到第20行的a替换为b;
4.基本命令:
①#cp /home/file /root/abc (拷贝文件file到/root下,并更名为abc);
②#mv /root/abc /home/xyz (移动文件abc到/home下并改名为xyz);
③#ls -a (查看包括隐含文件的所有文件);
.bashrc .bash[u] [/u]profile ‘.’表示隐藏文件;
④#cat /etc/passwd (查看文件内容);
⑤设置IP地址的三种方法:
#setup #service network restart 需重启网卡;
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 需重启网卡;
#ifconfig eth0 192.168.1.1 netmask 255.255.255.0
(临时IP,立即生效,无需重启即刻生效);
⑥破解密码?
⑦颜色含义?
棕色:管道文件; 黄色:设备文件; 红色:压缩或有特殊权限的文件;
蓝色:目录; 白色:普通文本文件;绿色:可执行文件;
青色:链接文件;
⑧用户家目录下的隐藏文件,用户私有的环境文件;
.bashrc; .bash_profile
普通用户不能关机,普通用户只能查看不能修改passwd文件;
用户管理
一、帐号文件
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 usera (添加普通用户,用户名不能是纯数字的)
#adduser usera (与useradd等效,少数linux版本支持)
指定参数:
#useradd -d /u hy
↓ ↓ ↓
(家目录)(家目录路径)(用户名)
指定家目录为/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_[u] [/u]HOME yes (是否创建新用户的家目录)
2、passwd --à设置/修改密码
命令及参数:
#passwd 用户名
#passwd [-d=delete] /清除密码(-d 放在用户名前后均可)
[-l=lock] /锁定密码
[-uf=unlock force]/强制解锁
2.1、例如:
修改密码
#passwd us
清空密码
#passwd us -d
#passwd -d us
锁定密码
#passwd -l 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包含四项)
[u] root [/u] :[u] x [/u] :[u] 0 [/u] : [u]root[/u]
(组名) (密码) (组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 (最后登录的时间和控制台号);
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:删除命令行光标后的字符;
9、用户的环境文件:
(私有: ~/.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
#vi /etc/motd (登录后的提示信息,motd=message of today);
This is new user
总结:
用户管理的配置文件:
~/.bashrc
~/.bash_profile
~/.bash_logout
~/.bash_history
/etc/bashrc
/etc/profile
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/issue (加入 today is d)
/etc/motd (登录后的提示信息)
/etc/skel (环境文件的模板目录)
/etc/login.defs
/etc/default/useradd
Tag: Linux Linux基础 TTTBLOG