Linux学习

“D:\Program Files\pt\putty.exe” -pw JIANGkui1 root@47.112.216.218 152.136.146.28
http://47.112.216.218:8000

【命令后台运行】
setsid 命令
nohub 命令&

【硬件】
/dev/ 所有设备文件都在这个目录中。linux将所有设备都看成目录或文件,又分为字符文件/设备和二进制(块)文件/设备。
linux的分区命名规则:前两个字母表示硬盘类型 HD或SD。第三个字母表示第几块磁盘(a、b、c)。最后一个数字代表分区。主分区或扩展分区的编号为1-4。所有逻辑分区(即扩展分区的扩展分区),编号从4开始往后排。
例如机器上有两块硬盘,一块机械硬盘,一块固态硬盘。机械硬盘的某个逻辑分区应该是 hda5;固态硬盘的主分区为sdb1。
【常用目录】
/ 根目录
/bin 命令目录
/boot bois目录
/dev 设备目录
/etc 配置文件目录
/home 普通用户目录
/lib 库文件目录
/sbin 系统管理命令目录
/tmp 临时文件目录

【常用快捷键】
ctrl+a 光标调到命令行开头
Ctrl+e 光标移到命令行末尾
ctrl+u 命令行开头到光标位置清除
ctrl+k 光标位置到命令行结束清除
ctrl+r 搜索某一历史命令
ctrl+l 清屏
history 列出历史命令记录

【服务软件】
ssh 远程管理
vsftp ftp服务器
mysqld mysql服务

【系统命令】
关机 "shutdown time"在time时间点关机。
注销 “logout”
重启 “reboot”
退出: q/ctrl+c/ctrl+d等
查看IP: ifconfig
关闭防火墙 service iptables stop
开启防火墙 service iptables start
更改重启级别 vi /etc/inittab
启动某个服务 servince servername start
下载文件 wget url
设置IP ifconfig eth0 192.168.63.27 netmask 255.255.255.0 route add default gw 192.168.63.1 up
列出软件列表 rpm -qa
卸载软件 rpm -e pakname
安装文件 rpm -ivh rpmname
centos7:
修改默认启动级别: systemctl set-default multi-user.target[graphical.target]
查看当前级别: systemctrl get-defualt
查看文件系统: df -h

【进程与作业】
查看当前进程 ps
-aux 列出所有进程
-ef 列出所有进程
-l 列出当前用户有关的进程
-u 列出某一用户的进程
-top 查看实时的进程变化。
进程状态:运行中:R正在运行或等待运行;S正在休眠,可唤醒;D正在休眠,不可唤醒,不可中断。K正在休眠,不可唤醒,可被中断。停止:T:已停止,可被恢复,或表示正在被调试。僵停:Z子进程在退出时向父进程发出信号。X,父进程获取了子进程所有信号。

进程优先级:<高优先级 n低优先级 s有子进程 +进程组之一

中断当前命令 ctrl+c
挂起当前命令 ctrl+z
后台执行命令 命令后+&如 sleep 1000 &
查看后台作业 jobs
-s 列出后台暂停作业
-r 列出后台运行作业
-l 列出作业和其PID
后台命令调到前台 fg 作业编号(jobs 可查看编号)
停止命令继续执行 bg 作业编号
显示当前作业进程信息 ps -j (TGID 线程组ID SID会话ID)
中断进程 kill -? -PID
-l 查看所有信号信息
-9 强制结束进程
-15 正常方式结束进程
-2 类似ctrl+c

【常用命令】
命令帮助: “man ?” ?为命令名称。
“命令–help”/“命令–?”
目录访问: “cd ?” ?为目录名称。例如访问主目录 cd /;访问设备目录 cd dev;访问上级目录cd …
列出当前目录及文件: “ls” 该命令将列出当前文件夹下的所有文件或目录。
参数 -l 以列表列出所有文件的详细信息:“ls -l”
参数 -R 以树状结构列出所有文件名称。
询问当前位置: “pwd”
建立目录: “mkdir ?”?为要建立的目录名称。如果已经存在会提示文件已存在。
删除非空目录: "rmdir ?"如果不存在目录会提示没有该文件或目录,若非空目录会提示not empty。
参数 -p 以递归方式删除非空目录,删除完毕后若该目录也为空,一并删除。
建立文件: “touch ?”?表示要建立的文件名,如touch 1。若文件已存在会以空文件覆盖。
删除文件或文件: “rm ?” 可以删除任意目录或文件。
参数 r 以递归方式删除目录及目录下的所有文件或目录。
参数 rf 强制递归删除,不进行是否提示。
挂载设备: "mount file dir"将某个设备文件file挂载到自定义目录dir上,即可通过访问dir来访问设备。
如:mount /dev/cdrom /mnt/cdr
复制文件: "cp file newfile"根据file文件复制一个名为newfile的新的文件。该命令只能复制文件,不能复制目录。
参数-r 以递归方式复制目录,达到可以复制目录的效果。
移动文件: "mv file dir"将file文件移动到dir目录下面,dir可以是相对或绝对路径。如果要移动非空目录,可以使用-r递归。
列出文件内容: “more name”、“cat name” 逆序列出文件内容 “tac name”
列出文件头几行: “head -n name”
列出后面几行: “tail -n name”
查找文件: “find / -name my*”
链接: "ln file link"将link链接到一个名为file的文件。改变file内容,打开link会改变。
参数 -s 软链接,相当于快捷方式。文件源删除后,硬链接内容依旧存在,软链接内容会丢失,并且ls会进行提示。
查找指定文件中的字符串 “grep str filename” 返回包含str的一行
查看磁盘信息 “fdisk -l”

【查看文件详解】
cat / tac
-A 等同于vET命令
-b 列出行号,空白行不标行号
-n 列出行号,空白行显示
-E 将结尾的断行字符$标出
-T 将tab按键以^I显示出来。
-v 列出一些看不出来的特殊字符

nl
-ba =cat -n
-bt =cat -t
-nln 行号在屏幕左边
-nrn 行号在屏幕右方
-nrz 行号在友方,前面补充零
-w ‘n’缩进n个字符

more
空格:向下翻一页
回车:向下翻一行
/str 搜索
:f 显示文件名和行数
b 翻到第一页
q 离开

less
空格:向下翻页
pagedown 向下翻页
pageup 向上翻页
/str 搜索
n 向下搜索
N 向上搜索
q 退出

head / tail
-n 指定显示头/尾几行。默认是10行。

wc 显示文件的行数,字数,字节数
-c 只显示字节
-w 只显示字数。一个字被定义为空白符(空格、缩进、换行回车等)的数目。
-l 只显示行数

【vi/vim 文本编辑器】
i 插入
esc 退出
u 撤销
x 删除

非插入模式下:
v 选择文本
y 复制
yy 复制当前行
dd 删除当前行
dw 删除单词
p 粘贴

:模式下
w 保存
q 退出
q! 强制不保存退出

【用户管理】
添加用户 "useradd username"命令成功后会在home目录建立相应的用户文件。
“useradd username -g groupname” 添加新用户到固定的用户组。
添加用户密码 "passwd username"命令键入后会出现RETYPE new UNIX password:请求输入相应密码。
添加用户组 “groupadd groupname”
修改用户的用户组 “usermod -g groupname username”
-s sbin/nologin 修改bash
-d home/xx 修改家目录
删除用户 “userdel username”;相应用户目录并不会被删除,需要 rm -rf username
切换用户 "su newusername"新用户登陆时,默认路径是用户的主目录home
查看用户和密码 cat /etc/passwd(用户名,密码,UID,GID,备注,家目录,shell) etc/shadow
查看用户组 cat /etc/group(组名,组口令,UID)
查看用户的组 groups username

【文件权限】
ls -1 的列表信息共9位,如-rw-r-rwrx:
第一位-(file),d(dir),l(link);
后九位r可读;w可写;-无权限;x可执行
第一组三位:文件所有者权限
第二组三位:文件所有者同组用户权限
第三组三位:其他用户权限
-rw-r–wrx:文件类型;所有者可以读写不可执行;所有者同组只读;其他人可读可写可执行。

更改文件权限: “chmod [u/g/o]+/-? filename” 括号内三种表示自身、同组、其他 +/-增删;?表示权限名称(r/w/x)
"chmod[0-7][0-7][0-7]"用三个八进制表示三种用户的权限。2=010表示可写 5=101表示可读可执行,其他类似。
更改文件所有者 “chown newusername”-R可递归修改
更改文件的所属组 “chgrp grpname” -R可递归修改
查看/设置默认权限 umask [000] 不加参数是查看,加参数是修改。
查看的是用户没有的权限,如默认022表示新建的目录或文件g/o都没有write权限。root默认为022 其他用户为002
-S 以文字方式显示默认权限
单一赋权 setfacl -m(配置赋权参数u|g|m:username:rwx filename) 如setfacl -m g🐀rw- test.txt
-x(删除单一赋权u|g|m:username filename)
-b(删除该文件所有单一赋权 filename)

【管道】
把上一个命令的结果交给下一个命令如: ls -ri /etc |more
ls -l |grep “^d” 只列出目录的详细信息
ls -l |grep “^-”|wc -l 当前目录下有多少个文件

【命令替换】
被包含在该符号中的命令将以结果作为参数,传递给另一个命令。
如:wall data 将当前日期时间传递给所有用户

【重定向输出】

如 ls > cmd.txt 把ls的结果输入到cmd.txt中,即重定向。

追加到相应文件中。
2> 错误输出

【VSFTP】
查看是否安装 rpm -qa| grep vsftpd
查看状态 service vsftpd status
停止 service vsftpd stop
重启 service vsftpd restart
启动vsftp service vsfftpd start
从ftp退出 bye
FTP服务需要先连接到系统,所以需要用系统用户进行登陆,但不用设置一个服务的用户名。
如: useradd -g root -d /user -s /sbin/nologin ftpuser

/etc/vsftpd/vsftpd.conf:配置
anonymous_enable=NO 禁止匿名登录
anon_upload_enable=YES 允许匿名用户上传文件;
anon_mkdir_write_enable=YES 允许匿名用户创建目录;
anon_other_write_enable=YES 允许匿名用户其他写入权限。
local_enable=YES 本地登陆
write_enable=YES 可写

userlist_deny=YES 拦截所有用户,仅白名单过滤
userlist_enable=YES 名单启用

chroot_local_user=yes 启用限制家目录,避免浏览系统目录,仅白名单过滤
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 设置名单目录
allow_writeable_chroot=YES 系统默认限制后主目录不可写,否则错误,这里避免系统限制,允许主目录可写。

/userlist 文件 若配置文件中的userlist_deny=no ;只允许列表内文件登陆(白名单),否则,不允许列表内文件登陆(黑名单)。默认前提必须是userlist_enable=YES开启的情况下。

/ftpusers 默认的系统黑名单,优先级大于userlist。

/etc/vsftpd/chroot_list 文件 若配置文件中的chroot_local_user=yes 启动限制用户在主目录模式,则该名单设置例外的白名单。否则若没有限制,该名单设置例外的黑名单。 前提是chroot_list_enable=YES开启的情况下。

【配置IP】
1:vi /etc/sysconfig/network-scripts/ifcfg-eth0 #第二块网卡:vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE 物理设备名
IPADDR IP地址
NETMASK 掩码值
NETWORK 网络地址(可不要)
BROADCAST 广播地址(可不要)
GATEWAY 网关地址
ONBOOT=[yes|no](引导时是否激活设备)
USERCTL=[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=static #[none|static|bootp|dhcp]
(引导时不使用协议|静态分配|BOOTP协议|DHCP协议)

设置BOOTPROTO为static(设置为静态ip)
设置GATEWAY为192.168.2.1(设置网关)
设置IPADDR为192.168.2.120(设置系统的ip地址)
设置PREFIX=24(设置子网掩码)

修改DNS

vi /etc/resolv.conf

nameserver 8.8.8.8 #google域名服务器
nameserver 114.114.114.114 #国内域名服务器

2:nmcli 进行设置
nmcli connection:
modify 修改
netname ipv4.dns 8.8.8.8
netname +ipv4.dns 114.114.114.114 修改DNS
netname ipv4.addressses 192.168.32.3/24 gw4 192.168.32.2
show 显示
nmcli connection show ens33 |grep ipv4 查看所有IP信息
up 激活
down 断开

3:图形化界面设置
nmcli connection modify ens33 connection.autoconnect yes
systemctl restart network
nmtui 图形化界面设置

【systemcrl】

daemon命令 systemctl命令 说明
service [服务] start systemctl start [unit type] 启动服务
service [服务] stop systemctl stop [unit type] 停止服务
service [服务] restart systemctl restart [unit type] 重启服务
systemctrl static:
loaded:单元配置文件已处理
enable/disabled 开机启动或不启动 static,无法启动,缺乏关联性服务。
active(running) 正在运行;(exited)配置成功;(wating)运行中,但正等待事件 inactive:不在运行

daemon命令 systemctl命令 说明
chkconfig [服务] on systemctl enable [unit type] 设置服务开机启动
chkconfig [服务] off systemctl disable [unit type] 设备服务禁止开机启动
systemctl is-enabled 是否开机启动
systemctl list-unit-files 查看所有启动项
systemctl命令 说明
systemctl 列出所有的系统服务
systemctl list-units 列出所有启动unit
systemctl list-unit-files 列出所有启动文件
systemctl list-units –type=service –all 列出所有service类型的unit
systemctl list-units –type=service –all grep cpu 列出 cpu电源管理机制的服务
systemctl list-units –type=target –all 列出所有target

systemctl命令 说明
systemctl is-active [unit type] 查看服务是否运行
systemctl is-enable [unit type] 查看服务是否设置为开机启动
systemctl mask [unit type] 注销指定服务
systemctl unmask [unit type] 取消注销指定服务

init命令 systemctl命令 说明
init 0 systemctl poweroff 系统关机
init 6 systemctl reboot 重新启动

systemctl命令 说明
systemctl get-default 获得当前的运行级别
systemctl set-default multi-user.target 设置默认的运行级别为mulit-user
systemctl isolate multi-user.target 在不重启的情况下,切换到运行级别mulit-user下
systemctl isolate graphical.target 在不重启的情况下,切换到图形界面下

【防火墙】
firewall -cmd
–add-port=<端口号/协议> 设置放行端口号
–add-sevice=<服务名> 设置放行服务
–remove-service=<服务名> 禁止服务
–remove-port=<端口号/协议> 禁止端口
–reload 让永久配置的规则立即生效,覆盖当前
–query-sevice=<服务名> 查询服务是否允许
–permanent 配置永久生效
–list-all 查询放行端口
–state 查询状态

【selinux】
setenforce 0 关闭,重启失效
vi /etc/selinux/configS ELINUX=disabled 关闭开机启动

【系统日志】
/var/log/messages 系统消息
/var/log/secure 系统安全
/var/log/maillog 邮件服务器相关
/var/log/cron 定期执行任务有关
/var/log/boot/log 系统启动有关

【打包和压缩】
打包程序:tar
c 创建文档
t 列出存档内容
x 提取存档
f filename
v 详细信息
z gzip;j bzip2 ;J xz 压缩方式为该是那种
如 tar -zcf a.tar.gz /etc/ 使用gzip压缩方式,将etc目录下所有文件打包成a.tar.gz,放在当前目录
tar -tf a.tar 查看压缩包

总结 压缩一般为 -zcf 解压缩为xf

【rpm命令】:使用安装包来安装软件,没有办法解决依赖关系

rpm -qa 列出所有安装软件列表
rpm -ql 软件名称 列出某一软件的安装路径
rpm -e --nodeps 卸载软件,不管其依赖关系。
rpm -ivh 安装
rpm -Uvh 升级

-i<套件档>或–install<套件档>:【安装】指定的套件档;
-q:使用【询问】模式,当遇到任何问题时,rpm指令会先询问用户;
-a:查询所有套件;-l:显示套件的文件列表;
-e<套件档>或–erase<套件档>:【删除】指定的套件;
-U<套件档>或–upgrade<套件档>:【升级】指定的套件档;
-h或–hash:显示安装进度;
-v:验证已经安装的软件包
-vv:详细显示指令执行过程,便于排错。

-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-f<文件>+:查询拥有指定文件的套件;
-s:显示文件状态,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-p<套件档>+:查询指定的RPM套件档;
-R:显示套件的关联性信息;

【yum】
/etc/yum.repos.d/CentOS-Base.repo 该配置文件来配置yum仓库信息

yum clean all 清除所有缓存
yum makecache 建立新的缓存

yum(选项)(参数)
选项
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。

参数
安装/更新:
install:安装rpm软件包;
groupinstall: 安装套件组;
check-update 检查可更新的程序
update:更新rpm软件包;
uroupupdate:更新套件组;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
查找/显示
search string 根据关键字string查找安装包
info 列出资源库中所有可以安装或更新的包信息
info package1 根据包名查看该软件的具体信息
list 显示所有已经安装和可以安装的程序包
list package1 显示指定程序包安装情况package1,可使用通配符
list updates 列出所有可以更新的包
list installed 列出所有已安装的包
list extras 列出所有已安装但不在资源库中的包
groupinfo group1 显示程序组group1信息

删除
remove:删除指定的rpm软件包;
groupremove group1 删除程序组group1
deplist package1 查看依赖情况
resolvedep:显示rpm软件包的依赖关系;
缓存
clean packages 清除缓存目录下的软件包
clean headers 清除缓存目录下的 headers
clean oldheaders 清除缓存目录下旧的 headers
clean all 三清
shell:进入yum的shell提示符;

【samba共享】
samba、samba-client 需要放行防火墙
smb nmb 两个服务。开启并设为开机启动
设置samba用户 smbpasswd -a smb
smba命令:
pdbedit -a 添加用户
-L 查看用户列表
-x 删除用户

配置文件: /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos //机器名称
security = user //验证模式

map to guest = bad user //设置用户可以匿名登陆

dns proxy = no
[share]
path=/share/
browseable=yes/no 是否可以浏览
writable=yes/no 是否所有用户可写
public=yes/no guest是否可以共享文件
guest ok = yes/no 是否允许匿名访问
read only=yes/no 是否只读
valid users=用户1,用户2 白名单
invalid users=用户1,用户2 黑名单
write list=用户1,用户2… 可写用户白名单

【常用端口号】
FTP:20
文件传输:21
SSH:22
远程登录:23
电子邮件:25/110
HTTP:80
MYSQL:3306

【screen】
screen -S name 创建后台命令
ctrl+A+D 切换回前台
ctrl+a+p 上一个会话
ctrl+a+n 下一个会话
ctrl+a+c 在当前会话中新建会话
ctrl+a+k 强制关闭当前会话

exit 结束当前会话
-r name 切换后台
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业
-ls 查看所有会话列表,列表状态attached(已打开) detached后台
-d 剔除当前占用当前会话的用户
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

linux用户管理常用命令

1)管理用户(user)的工具或命令;
useradd 注:添加用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和sudo 功能差不多;

2)管理用户组(group)的工具或命令;
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;
///
建立一个新用户

建立一个新的用户包括两个步骤,第一步是使用useradd命令完成一个新用户的初始化设置工作;第二步是用passwd为这个新用户设置密码。例如,我们要给系统添加一个用户叫floatboat,密码为fan2001z,那相关的操作是:
useradd floatboat <回车>
这时候系统没有任何显示。接着:
passwd floatboat <回车>
系统显示:
Changing password for user floatboat
New UNIX password:
你输入:
fan2001z<回车>
注意,由于linux并不采用类似windows的密码回显(显示为*号)——为避免你输入密码时被人注意到有多少位——所以,输入的这些字符你是看不见的。
系统显示:
Retype new UNIX password:
你再重新输入一次密码,然后回车确认,这时系统会显示:
passwd:all authentication tokens updated successfully
表示你修改密码成功了。
到这里,新用户的创建工作就算完成了。下面,我们再补充一些有关增加新用户的常识:
1、 useradd所做的初始化操作已经包括在/home目录下为floatboat帐号建立一个名为floatboat的主目录。如果你不想使用这个缺省的目录,而希望把他的主目录放在/home/goal里(还放在/home下,只是一种良好的习惯,没有其他什么特别的要求),可以使用useradd的参数-d,命令如下:
useradd -d /home/goal floatboat
2、useradd的初始化操作还包括为用户单独建立一个与用户名同名的组(floatboat组)。这叫用户私有组的机制,与默认组机制相对应。对用户分组一是方便管理,二是可以明确权限。复杂的我们将在以后的深入内容中探讨。我们如果想让此用户加入一个已有的组的话,可以使用-g参数。例如我们想让floatboat加入webusers组,那么可以使用以下命令:
useradd -g webusers floatboat
同样的,我们还可以使用-G参数使他同时加入多个组,例如webusers和ftpusers:
useradd -G ftpusers,webusers floatboat
3、 passwd命令为一个用户设置密码,但它实质上是一个修改密码的程序。只有超级用户和用户自己可以修改密码,其它的普通用户没有给他修改密码的权利。用户密码的组成要尽量的复杂,最好包括字母、数字和特殊符号,而且最好设成6位以上。太短passwd程序不允许,只是单纯的字母或单纯的数字, passwd也会有意见。你都会看见passwd出现的提示的,不要害怕,仔细看看到底它是怎么说的:)
4、你在增加一个新用户的时候,也可以设置用户登录的shell。缺省的,系统提供了/bin/bash。你如果非要指定的话,可以使用-s 参数就可以了。例如
useradd -d /www -s /usr/bin/passwd floatboat
注意,这些参数是可以一块使用的,如上例所示,它表示增加新用户,并把其主目录路径设置在/www,登录的shell为/usr/bin/passwd。关于shell的更详细的说明,请参考下面的修改用户的个人设置相关内容。
5、删除一个用户可以使用userdel命令,直接带用户名做参数就可以了。

修改用户的设置

对现有用户的修改,比较常用的主要是修改密码(使用passwd就好了),修改用户的登录shell,修改用户所属的默认组,设置帐号有效期,修改用户的说明信息等等,偶尔也会用到修改用户主目录。

修改用户的登录shell
使用chsh命令可以修改自己的shell,只有超级用户才能用chsh username为其它用户修改shell设置。注意,指定的shell必须是列入/etc/shells文件中的shell,否则该用户将不能登陆。
一般,比较常见的shells文件包括下面这些shell:
/bin/bash2
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
而网管们还喜欢在里面加上/usr/bin/passwd,这是为了不然用户通过控制台或telnet登录系统,却可以使用修改帐户密码(比如在FTP里用)。以及/bin/false,也就是不让这个用户登录的意思喽&,连FTP也不能用。
你也可以使用usermod命令修改shell信息,如下所示:
usermod -s /bin/bash floatboat
其中/bin/bash和floatboat应取相应的shell路径文件名及用户名。
还有一种情况,就是你为用户设置了一个空的shell(就是""),也就是说,这个用户没有shell。呵呵,绝对没有在我还未曾见过,因为这种用户登录后,系统还是会给它一个shell用的。不信你试试:
usermod -s “” floatboat
这种用户根据系统的不同,会有一个sh或bash进行操作,我也没有看出功能上和其它普通用户登录有什么不同。

修改用户所属的默认组
这个功能也可以通过usermod命令来实现,使用-g参数,例如把floatboat的默认组改为nobody,可以使用如下命令:
username -g nobody floatboat
nobody在类UNIX系统中一般都意味着没有任何权限。

设置帐号有效期
如果使用了影子口令,则可以使用如下命令来修改一个帐号的有效期:
usermod -e MM/DD/YY username
例如把用户floatboat的有效期定为2001年12月31日:
usermod -e 12/31/01 floatboat
如果把该用户的有效期设为已经过去的时间,就可以暂时禁止该用户登录系统。

修改用户的说明信息
修改用户的说明信息,最简单的方法莫过于直接修改/etc/passwd文件,找到对应的用户记录行,例如下列行:
floatboat❌503:503::/home/floatboat:/bin/bash
你可以直接在第四个冒号和第五个冒号之间插入该用户的说明就可以了。其实,很多用户设置都可以在这修改,比如该行最后一部分/bin/bash就是用户登录shell的设置。关于这个/etc/passwd文件,我们后面将进一步的深入探讨。

修改用户主目录
修改用户的主目录主要使用usermod命令的-d参数,例如:
usermod -d /www floatboat
这一行将floatboat的主目录改到/www。如果想将现有主目录的主要内容转移到新的目录,应该使用-m开关,如下所示:
usermod -d -m /www floatboat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值