1. 安装sl命令,实现“跑火车”效果
“sl”为linux系统中有趣但不实用的命令之一,在终端执行sl命令即可出现“跑火车”。
2. 提示yum lock解决办法
yum操作时提示“Another app is currently holding the yum lock; waiting for it to exit...”的解决办法: rm -rf /var/run/yum.pid
3. 安装VMware tools
3.1 root登陆系统后,打开终端查看mount:
/dev/sr0 on /run/media/root/RHEL-7.0 Server.x86_64 type iso9660 (ro,nosuid,nodev
[root@localhost Desktop]# umount /dev/sr0 # 卸载
3.2 依次打开以下菜单:虚拟机 -> 全新安装VMware Tools(T)...,这时桌面上应该就有弹出如下图标:
3.3 cd进入/run/media/root/VMware Tools目录
[root@localhost VMware Tools]# cp VMwareTools-10.1.15-6627299.tar.gz /root/Desktop/
[root@localhost VMware Tools]# cd /root/Desktop/
[root@localhost Desktop]# tar -zxvf VMwareTools-10.1.15-6627299.tar.gz
[root@localhost vmware-tools-distrib]# ./vmware-install.pl
安装过程中,一路yes向下执行即可。
4. yum源
4.1 yum本地源配置
[mycms5@localhost Desktop]$ yum repolist
Loaded plugins: langpacks, product-id, subscription-manager
repolist: 0
[mycms5@localhost Desktop]$
- 4.1.1 依次单击:虚拟机 - 可移动设备 - CD/DVD(SATA),设置连接本地镜像。
[mycms5@localhost Desktop]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 20469760 3465656 17004104 17% /
devtmpfs 1009356 0 1009356 0% /dev
tmpfs 1017824 128 1017696 1% /dev/shm
tmpfs 1017824 9120 1008704 1% /run
tmpfs 1017824 0 1017824 0% /sys/fs/cgroup
/dev/sda1 201388 102744 98644 52% /boot
/dev/sr0 3654720 3654720 0 100% /run/media/mycms5/RHEL-7.0 Server.x86_64
- 4.1.2. 挂载,创建repo文件
[mycms5@localhost mnt]$ sudo mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[mycms5@localhost mnt]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 20469760 3465644 17004116 17% /
devtmpfs 1009356 0 1009356 0% /dev
tmpfs 1017824 184 1017640 1% /dev/shm
tmpfs 1017824 9080 1008744 1% /run
tmpfs 1017824 0 1017824 0% /sys/fs/cgroup
/dev/sda1 201388 102744 98644 52% /boot
/dev/sr0 3654720 3654720 0 100% /mnt
[mycms5@localhost Desktop]$ sudo vi /etc/yum.repos.d/cdrom.repo
vi创建文件cdrom.repo内容为:
[cdrom]
name = cdrom
baseurl = file:///mnt
gpgcheck=0
enable=1
执行下面两行即可:
yum clean all
yum makecache
4.2 搭建远程yum源
yum install -y vsftpd # 安装vsftpd
systemctl start vsftpd # 启动
systemctl enable vsftpd # 设置开机自启动
挂载镜像光盘文件,把Package里的文件复制到ftp目录
cp /mnt/cdrom/Package/* /var/ftp
yum install createrepo
createrepo /var/ftp
[root@localhost ftp]# createrepo /var/ftp
Spawning worker 0 with 931 pkgs
Spawning worker 1 with 931 pkgs
Spawning worker 2 with 931 pkgs
Spawning worker 3 with 930 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
接下来,我们就可以在同网络上的其他机器,使用整个远程的yum源了。
[root@localhost ftp]# yum-config-manager --add-repo=ftp://192.168.9.3
Loaded plugins: fastestmirror
adding repo from: ftp://192.168.9.3
[192.168.9.3]
name=added from: ftp://192.168.9.3
baseurl=ftp://192.168.9.3
enabled=1
[root@localhost ftp]# echo gpgcheck=0 >> /etc/yum.repos.d/192.168.9.3.repo
5. 图形界面与命令行的切换
按Ctrl+Alt+Fn(2,3,4,5,6)进入命令行,按Ctrl+Alt+F1回到图形界面。从Linux的命令界面切换到图形界面可以按Alt+F7,也可以输入命令startx进入图形界面。
6. yum 只下载软件包不安装的方法
yum install * # yum默认安装软件包存在/var/cache/yum/目录下
6.1 yum自带工具yumdownloader
[root@localhost Desktop]# yum install yum-utils*
[root@localhost Desktop]# yumdownloader sl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror.nes.co.id
* extras: mirrors.163.com
* updates: mirrors.163.com
sl-5.02-1.el7.x86_64.rpm FAILED
http://mirror.nes.co.id/epel/7/x86_64/s/sl-5.02-1.el7.x86_64.rpm: [Errno 14] curl#7 - "Failed to connect to mirror.nes.co.id port 80: Connection timed out"
Trying other mirror.
sl-5.02-1.el7.x86_64.rpm | 14 kB 00:00:00
[root@localhost Desktop]# find / -name sl-5.02-1.el7.x86_64.rpm
find: ‘/run/user/1000/gvfs’: Permission denied
/root/Desktop/sl-5.02-1.el7.x86_64.rpm
7. user用户相关信息
7.1 查看用户密码相关信息:
[root@localhost ~]# chage -l mycms5
Last password change : Oct 16, 2017 # 最后修改时间
Password expires : never # 密码永不过期
Password inactive : never #
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7 #过期前7天提醒
[root@localhost ~]#
7.2 userdel命令
删除用户userdel -r mycms5 删除用户时完全删除家目录
删除用户userdel mycms5 删除用户时不删除家目录、邮件等用户配置文件
7.3 useradd命令
增加用户并指定组-g、-G的区别:
[root@localhost Desktop]# useradd -g caiwubu kuaiji001
[root@localhost Desktop]# useradd -G caiwubu kuaiji002
[root@localhost Desktop]# id kuaiji001
uid=1002(kuaiji001) gid=1001(caiwubu) groups=1001(caiwubu)
[root@localhost Desktop]# id kuaiji002
uid=1003(kuaiji002) gid=1003(kuaiji002) groups=1003(kuaiji002),1001(caiwubu)
[root@localhost Desktop]# useradd -d /mytesthome mytest #指定目录
[root@localhost Desktop]# useradd -s /sbin/nologin xiaoshou001 #禁止登陆
[root@localhost Desktop]# cat /etc/passwd
.....
mytest:x:1004:1004::/mytesthome:/bin/bash
xiaoshou001:x:1005:1005::/home/xiaoshou001:/sbin/nologin
[root@localhost ~]# useradd -u 888888 boss #指定用户id
[root@localhost ~]# id boss
uid=888888(boss) gid=1006(boss) groups=1006(boss)
[root@localhost ~]# useradd ppp
[root@localhost ~]# id ppp
uid=1006(ppp) gid=1007(ppp) groups=1007(ppp)
7.4 usermod命令
修改用户信息,参数含义可参考useradd:
[root@localhost ~]# useradd liying
[root@localhost ~]# id liying
uid=1007(liying) gid=1008(liying) groups=1008(liying)
[root@localhost ~]# usermod -G caiwubu liying
[root@localhost ~]# id liying
uid=1007(liying) gid=1008(liying) groups=1008(liying),1001(caiwubu)
7.5 其他用户命令
passwd mycms5 修改密码
8. chattr 和 lsattr
只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性。但是它并不适合所有的目录。
chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。
参数:
- :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
9. 文件访问控制列表ACL
ACL可以为某个文件单独设置该文件具体的某用户或者组的权限
getfacl 文件名 #获取文件的访问控制信息
seftacl 设置文件的acl
-m 修改文件的acl权限
-x 取消用户或组对文件的权限
语法:
setfacl -m u:用户名:权限 文件名 #设置某用户的访问权限
setfacl -m g:组 名:权限 文件名 #设置某个组的访问权限
setfacl -x u:用户名 文件名 #取消某用户的访问权限
setfacl -x g:组 名 文件名 #取消某个组的访问权限
[root@localhost Desktop]# cat bozhou
China Bozhou Huatuo!
[root@localhost Desktop]# chown kuaiji:caiwubu bozhou
[root@localhost Desktop]# ls -l bozhou
-rw-r--r--. 1 kuaiji caiwubu 21 Oct 16 20:59 bozhou
[root@localhost Desktop]# useradd qiaocheng
[root@localhost Desktop]# id qiaocheng
uid=1010(qiaocheng) gid=1011(qiaocheng) groups=1011(qiaocheng)
[root@localhost Desktop]# setfacl -m u:qiaocheng:r bozhou
[root@localhost Desktop]# getfacl bozhou
# file: bozhou
# owner: kuaiji
# group: caiwubu
user::rw-
user:qiaocheng:r--
group::r--
mask::r--
other::r--
[root@localhost Desktop]# setfacl -x u:qiaocheng bozhou
[root@localhost Desktop]# getfacl bozhou
# file: bozhou
# owner: kuaiji
# group: caiwubu
user::rw-
group::r--
mask::r--
other::r--
[root@localhost Desktop]# mkdir caiwushi
[root@localhost Desktop]# touch caiwushi/zhangben{1..6}
[root@localhost Desktop]# ll caiwushi/
total 0
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben1
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben2
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben3
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben4
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben5
-rw-r--r--. 1 root root 0 Oct 16 21:10 zhangben6
[root@localhost Desktop]# chmod o-r -R caiwushi/
[root@localhost Desktop]# ll caiwushi/
total 0
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben1
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben2
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben3
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben4
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben5
-rw-r-----. 1 root root 0 Oct 16 21:10 zhangben6
[root@localhost Desktop]# setfacl -m u:boss:r -R caiwushi/
[root@localhost Desktop]# getfacl caiwushi/zhangben1
# file: caiwushi/zhangben1
# owner: root
# group: root
user::rw-
user:boss:r--
group::r--
mask::r--
other::---
[root@localhost Desktop]# touch caiwushi/zhangbenok
[root@localhost Desktop]# getfacl caiwushi/zhangbenok
# file: caiwushi/zhangbenok
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@localhost Desktop]# setfacl -m d:u:boss:r -R caiwushi/ #d 目录
[root@localhost Desktop]# touch caiwushi/zhangbenok2
[root@localhost Desktop]# getfacl caiwushi/zhangbenok2
# file: caiwushi/zhangbenok2
# owner: root
# group: root
user::rw-
user:boss:r--
group::r-x #effective:r--
mask::r--
other::---
10. yum-config-manager命令找不到
系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils来安装
11. 关于Public key for *.rpm is not installed 的解决方法
- yum源搭建在rhel7虚机上,centos7虚机上也使用前者yum源,那么两台机子都需要执行下面的脚本:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
- 若yum源搭建在centos7上,可参考下面:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
11. 终端提示符显示-bash-4.2# 而非root@主机名的解决办法
原因是/root下面的配置文件.bash_profile 和.bashrc丢失了:
cp /etc/skel/.bashrc /root/
cp /etc/skel/.bash_profile /root/
注销root,重新登录就可以恢复正常。
12. rhel7 启动模式
[root@my ~]# systemctl get-default # 查看启动模式
graphical.target
[root@my ~]# systemctl set-default
anaconda.target local-fs.target runlevel4.target
basic.target multi-user.target runlevel5.target
bluetooth.target network-online.target runlevel6.target
cryptsetup.target network.target shutdown.target
ctrl-alt-del.target nfs.target sigpwr.target
default.target nss-lookup.target sleep.target
emergency.target nss-user-lookup.target slices.target
final.target paths.target smartcard.target
getty.target poweroff.target sockets.target
graphical.target printer.target sound.target
halt.target reboot.target spice-vdagentd.target
hibernate.target remote-fs-pre.target suspend.target
hybrid-sleep.target remote-fs.target swap.target
initrd-fs.target rescue.target sysinit.target
initrd-root-fs.target rpcbind.target system-update.target
initrd-switch-root.target runlevel0.target timers.target
initrd.target runlevel1.target time-sync.target
kexec.target runlevel2.target umount.target
local-fs-pre.target runlevel3.target
[root@my ~]# systemctl set-default multi-user.target # 设置字符界面启动模式
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'
13. 查看SELinux状态以及关闭
SELinux有三种:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止 可疑行为,Enforcing 代表记录警告且阻止可疑行为
[root@my ~]# getenforce
Enforcing
[root@www ~]# setenforce [0|1]
选项与参数:
0 :转成 permissive 宽容模式;
1 :转成 Enforcing 强制模式
[root@my ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing # 禁用SeLinux,修改这里为disabled后需要重启系统才能生效
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
14. 禁止root用户登陆
[root@my ~]# vi /etc/ssh/sshd_config
PermitRootLogin no # 将yes修改为no
[root@my ~]# systemctl restart sshd
15. Rehl学习环境
systemctl stop/mask firewalld/iptables/ip6tables/ebtables
setenforce 0
16. You could try using --skip-broken to work around the problem
问题:
Error: Package: *****************************
Requires: ******************************
Removing: xxxxxxxxxxx.x86_64 (@rpmforge) ******
Updated By: *******-*****-*********** Not find
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
解决办法:yum remove xxxxx-xxxxx-xxxxxxx.x86_64 然后重新安装: yum install xxxxxx
17. 虚拟机命令行下挂载iso镜像文件
首先在虚拟机-可移动设备-CD/DVD里连接设备,设置已连接状态。
然后,在命令行界面做如下操作:
[root@localhost cdrom]# .ls -l /dev/cdrom |grep cd
lrwxrwxrwx. 1 root root 3 Oct 25 03:23 /dev/cdrom -> sr0
mkdir /mnt/cdrom #创建挂载目录
mount /dev/cdrom /mnt/cdrom #挂载
18. centos 7 删除 virbr0 虚拟网卡
- 出现虚拟网卡是因为安装时启用了 libvirtd 服务后生成的
- 关闭方法
virsh net-list
名称 状态 自动开始 持久
default active yes
virsh net-destroy default
virsh net-undefine default
systemctl restart libvirtd.service
19. rhel6 打开和关闭防火墙
-
- 临时关闭和开启
关闭:service iptables stop 开启:service iptalbes start 查看状态:service iptables status(关闭状态的话会提示firewal is not running)
- 临时关闭和开启
- 2.非及时性生效,重启后永久性生效
关闭:chkconfig iptbales off 开启:chkconfig iptables on 查看状态:chkconfig iptables --list
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT