1、linux——命令篇
2、linux——用户篇
1、创建用户
useradd详解:
useradd是Linux添加新用户的命令,这个命令提供了一次性创建新用户账户及设置用户HOME目录结构的简便方法。
1、useradd命令加参数-D参看系统的默认值:
# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
解释:
1)新用户添加到GID为100的公共组
2)新用户的HOME目录将会位于/homoe/username
3)新用户账户密码在过期后不会被禁用
4)新用户账户未被设置为某个日期后就过期
5)新用户账户将bash shell作为默认shell
6)系统会将/etc/skel目录下的内容复制到用户的HOME目录下
7)系统为该用户账户在mail目录下创建一个用于接收邮件的文件倒数第2个值很有意思。useradd命令允许管理员创建一个默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板。这样,就能自动在每个新用户的HOME目录里放置默认的系统文件。在Ubuntu Linux系统上,/etc/skel目录下有下列文件:
$ ls -la /etc/skel total 32 drwxr-xr-x 2 root root 4096 Jun 24 09:43 . drwxr-xr-x 132 root root 12288 Jun 19 09:53 .. -rw-r--r-- 1 root root 220 Apr 3 2012 .bash_logout -rw-r--r-- 1 root root 3486 Apr 3 2012 .bashrc -rw-r--r-- 1 root root 179 Apr 3 2012 example.desktop -rw-r--r-- 1 root root 675 Apr 3 2012 .profile $
在创建用户时,可以使用下面的命令行参数改变默认值或默认行为:
============================================================================
参 数 描 述
----------------------------------------------------------------------------
-c comment 给新用户添加备注
-d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话)
-e expire_date 用YYYYY-MM-DD格式指定一个账户过期的日期
-f inactive_days 指定这个帐户密码过期后多少天这个账户被禁用;0表示密码一过期就立即禁用,-1表示禁用这个功能
-g initial_group 指定用户登录组的GID或组名
-G group ... 指定用户除登录组之外所属的一个或多个附加组
-k 必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录
-m 创建用户的HOME目录
-M 不创建用户的HOME目录(当默认设置里指定创建时,才用到)
-n 创建一个同用户登录名同名的新组
-r 创建系统账户
-p passwd 为用户账户指定默认密码
-s shell 指定默认登录shell
-u uid 为账户指定一个唯一的UID
============================================================================同样,你可以用-D参数后面跟一个要修改的值的参数,来修改系统默认的新用户值。这些参数如下表:
============================================================================
参 数 描 述
----------------------------------------------------------------------------
-b default_home 更改默认的创建用户HOME目录的位置
-e expiration_date 更改默认的新账户的过期日期
-f inactive_days 更改默认的新用户从密码过期到账户被禁用的天数
-g group 更改默认的组名称或GID
-s shell 更改默认的登录shell
============================================================================
如 #useradd -D -s /bin/tsch ,修改默认的shell为/bin/tsch。
2、删除用户
userdel详解:
删除普通用户命令: userdel 用户名
效果:默认情况下,userdel命令只会删除/etc/passwd文件中的信息,而不会删除系统中属于该账户的任何文件。
完全删除普通用户命令:userdel -r 用户名
效果:如果加上-r,userdel会删除用户的HOME目录以及mail目录。然后,系统上仍可能存有归已删除用户所有的其他文件。这在有些环境中会造成问题。
PS:在有大量用户的环境中使用-r参数时要特别小心。你永远不知道用户是否在他的HOME目录下存放了其他用户或其他程序要使用的重要文件。记住在删除用户的HOME之前一定要检查清楚!
3、 设置只读用户
整个配置的命令如下(主要使用了:Linux bash受限的shell(RESTRICTED SHELL))
步骤
#1.创建只读shell(这步可以省略)ln -s /bin/bash /bin/rbash
#2.创建用户并指定用户启动执行的shelluseradd -s /bin/bash readonly
这步不要指定rbash,否侧cd等內建命令无法使用
#3.修改用户密码passwd readonly
#4.创建用户shell执行命令目录mkdir /home/readonly/.bin
#5.root修改用户的shell配置文件chown root: /home/readonly/.bash_profile 改变文件拥有者和组 chmod 755 /home/readonly/.bash_profile
并设置文件不可删除权限
chattr -d /home/readonly/.bash_profilechatter: 锁定文件,不能删除,不能更改
+a: 只能给文件添加内容,但是删除不了,
chattr +a /etc/passwd
-d: 不可删除
加锁:chattr +i /etc/passwd 文件不能删除,不能更改,不能移动
查看加锁: lsattr /etc/passwd 文件加了一个参数 i 表示锁定
解锁:chattr -i /home/omd/h.txt - 表示解除
#6.修改bash配置文件,主要是指定PATH的读取vi /home/readonly/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs
#PATH=$PATH:$HOME/bin
PATH=$HOME/.bin
export PATH
#切换到只读账号使环境变量生效
su - readonly
source /home/readonly/.bash_profile
#7.将允许执行的命令链接到$HOME/.bin目录ln -s /usr/bin/wc /home/readonly/.bin/wc ln -s /usr/bin/tail /home/readonly/.bin/tail ln -s /bin/more /home/readonly/.bin/more ln -s /bin/cat /home/readonly/.bin/cat ln -s /bin/grep /home/readonly/.bin/grep ln -s /bin/find /home/readonly/.bin/find ln -s /bin/pwd /home/readonly/.bin/pwd ln -s /bin/ls /home/readonly/.bin/ls ln -s /bin/less /home/readonly/.bin/less ln -s /bin/tar /home/readonly/.bin/tar
3、linux——权限篇