当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Sftp限制用户访问权限的方法介绍      Sftp限制用户访问权限的方法介绍,有需要的朋友可以参考下。 第一步:查看OpenSSH软件版   代码如下: [root@Oracle-2 ~]# rpm -qa | grep ssh openssh-4.3p2-36.el5 openssh-clients-4.3p2-36.el5 openssh-server-4.3p2-36..........
    ▪修改linux的系统日期与时间的方法      修改linux的系统日期与时间的方法,有需要的朋友可以参考下。 编译nginx时,提示时间戳问题,检查发现系统时间成了2007年。     一般使用“date -s”命令来修改系统时间。比如将系统时间.........
    ▪查看及修改Linux系统时间的方法介绍      查看及修改Linux系统时间的方法介绍,有需要的朋友不妨参考下。 设置时间: date -s (后面跟时间) 一、查看Linux硬件时间 hwclock 或 clock 或 hwclock –show 或 clock –show 二、修改Linux硬件时间.........

[1]Sftp限制用户访问权限的方法介绍
    来源: 互联网  发布时间: 2013-12-24

Sftp限制用户访问权限的方法介绍,有需要的朋友可以参考下。

第一步:查看OpenSSH软件版
 

代码如下:
[root@Oracle-2 ~]# rpm -qa | grep ssh
openssh-4.3p2-36.el5
openssh-clients-4.3p2-36.el5
openssh-server-4.3p2-36.el5
openssh-askpass-4.3p2-36.el5 
或者:
[root@Oracle-2 ~]# ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

发现操作系统的OpenSSH软件是4.3p2,低于4.8p1版本,所以需要做升级。
 
第二步:下载最新的OpenSSH软件
OpenSSH是免费的,可以到官网上进行下载: www.openssh.com
当前最高版本是OpenSSH6.0,我们就可以下载该版本:openssh-6.0p1.tar.gz

下载的时候,我们需要看一看官方安装指导文档Installation instructions ,里面有安装该版本的注意事项和安装步骤说明,最好仔细阅读一下。

第三步:确认OpenSSH软件安装条件
在官方安装指导文档中提到,安装OpenSSH6.0需要具备两个条件:
You will need working installations of Zlib and OpenSSL.
Zlib 1.1.4 or 1.2.1.2 or greater (ealier 1.2.x versions have problems):
http://www.gzip.org/zlib/

OpenSSL 0.9.6 or greater:
http://www.openssl.org/

上面指出了,OpenSSH6.0安装所依赖的两款软件Zlib和OpenSSL的最低版本,如果服务器的软件版本不符合要求,就要先升级该两款软件。

首先我们需要确认服务器上Zlib和OpenSSL软件的版本:
 

代码如下:

[root@Oracle-2 ~]# rpm -qa | grep -i zlib
zlib-devel-1.2.3-3
perl-Compress-Zlib-1.42-1.fc6
zlib-1.2.3-3
perl-IO-Zlib-1.04-4.2.1

[root@Oracle-2 ~]# rpm -qa | grep -i openssl
pyOpenSSL-0.6-1.p24.7.2.2
openssl-devel-0.9.8e-12.el5
openssl-0.9.8e-12.el5
 

可以看到,Zlib 的版本是1.42 ,OpenSSL的版本是0.9.8,满足OpenSSH6.0安装的要求。

第四步:卸载OpenSSH软件
安装之前,有下面几个工作需要完成:

(1)停sshd服务
[root@Oracle-2 ~]# service sshd stop
Stopping sshd: [  OK  ]

(2)备份sshd文件
说明:在卸载之前需要将 /etc/init.d/sshd 文件做个备份,安装完成后,需要再将备份的sshd文件拷贝到/etc/init.d/目录中,这样可以保证升级完成后可以继续使用service sshd start/stop/restart  的方式管理sshd服务,否则将不可使用。
[root@Oracle-2 ~]# cp /etc/init.d/sshd /root/sshd

(3)卸载服务器上已经存在的OpenSSH软件
卸载OpenSSH,通过rpm -qa 命名查询出需要卸载的rpm软件包, 再用 rpm -e 命令卸载:

查询:
[root@Oracle-2 ~]# rpm -qa | grep -i openssh
openssh-4.3p2-36.el5
openssh-clients-4.3p2-36.el5
openssh-server-4.3p2-36.el5
openssh-askpass-4.3p2-36.el5
卸载:
[root@Oracle-2 ~]# rpm -e openssh-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-clients-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-server-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-askpass-4.3p2-36.el5 -deps
 
(4)删除 /etc/ssh/ 目录下的ssh文件
rm -rf /etc/ssh/*

第五步:安装OpenSSH软件
解压下载的软件包 openssh-6.0p1.tar.gz
[root@Oracle-2 ~]# tar -zxvf openssh-6.0p1.tar.gz

安装OpenSSH软件:
进入解压出的文件夹,按照顺序执行下面的编译和安装命令:
[root@Oracle-2 ~]# ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-md5-passwords –mandir=/usr/share/man
[root@Oracle-2 ~]# make
[root@Oracle-2 ~]# make install

执行完成后,就可以用 ssh -V 命名查看openssh的版本,验证安装结果:
[root@Oracle-2 ~]# ssh -V
OpenSSH_6.0p1, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
可以看到版本已经变成6.0p1了,说明安装没有问题。

接下来,恢复sshd文件,将备份的sshd文件复制到 /etc/init.d/ 目录下:
[root@Oracle-2 ~]# cp /root/sshd /etc/init.d/sshd

测试sshd服务的启动和停止:
[root@Oracle-2 ~]# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
OK,到这里,OpenSSH 的升级就做完了。

注意:
这样升级完成,在服务器关机启动后,sshd服务不会自动启动,为了使sshd服务在开机时自动启动,我们需要执行下面的命令:
[root@Oracle-2 ~]# chkconfig --add sshd
[root@Oracle-2 ~]# chkconfig --level 123456 sshd on
这样开机后就可以自动启动sshd服务了。

第六步:配置sftp服务用户的访问权限
(1)创建sftp用户的主根目录
[root@Oracle-2 ~]# mkdir -p /home/sftp
[root@Oracle-2 ~]# chmod -R 755 /home/sftp

(2)创建sftp用户组和一个sftp用户
[root@Oracle-2 ~]# groupadd sftp
[root@Oracle-2 ~]# useradd -g sftp -d /home/sftp/blog blog
[root@Oracle-2 ~]# passwd blog

(3)权限设置
设置 /etc/ssh/sshd_config配置文件,通过Chroot限制用户的根目录。
[root@Oracle-2 ~]# vi /etc/ssh/sshd_config
# override default of no subsystems
#注释掉原来的Subsystem设置
#Subsystem      sftp    /usr/libexec/sftp-server
#启用internal-sftp
Subsystem sftp internal-sftp

# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
#限制blog用户的根目录
Match User pay
ChrootDirectory /home/sftp/blog/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
保存退出,重启sshd服务:
[root@Oracle-2 ~]# service sshd restart

(4)测试sftp权限控制
使用blog用户尝试登录sftp ,发现无法登陆,给出的提示也很难看懂,什么原因呢?
原来要使用Chroot功能实现用户根目录的控制,目录权限的设置非常重要,否则将会无法登陆。

目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。
如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

设置目录的属主和权限:
[root@Oracle-2 ~]# chown root:root /home/sftp  /home/sftp/blog
[root@Oracle-2 ~]# chmod 755 /home/sftp /home/sftp/blog

由于上面设置了目录的权限是755,因此所有非root用户都无法在目录中写入文件。我们需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。以blog目录为例:
[root@Oracle-2 ~]#  mkdir /home/sftp/blog/web
[root@Oracle-2 ~]# chown blog:sftp /home/sftp/blog/web
[root@Oracle-2 ~]#  chown 775 /home/sftp/blog/web

设置完成后,我们再用blog用户登录sftp,发现这次可以正常登录了,并且可以访问的根目录控制在了/home/sftp/blog/下,达到了我们的要求。

补充:
上面是设置某一个sftp用户的访问权限,我们可以通过下面的配置,来设置某一个sftp组的用户访问权限:
Match group sftp
ChrootDirectory /home/sftp/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp


    
[2]修改linux的系统日期与时间的方法
    来源: 互联网  发布时间: 2013-12-24

修改linux的系统日期与时间的方法,有需要的朋友可以参考下。

编译nginx时,提示时间戳问题,检查发现系统时间成了2007年。    
一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2008年12月3日的命令如下:
 

代码如下:
#date -s 12/07/2008

将系统时间设定成下午11点12分0秒的命令如下:
 

代码如下:
#date -s 11:12:00

注意:这里说的是系统时间,是linux由操作系统维护的。

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
如果要确保修改生效可以执行如下命令:
#clock -w
这个命令强制把系统时间写入CMOS。


    
[3]查看及修改Linux系统时间的方法介绍
    来源: 互联网  发布时间: 2013-12-24

查看及修改Linux系统时间的方法介绍,有需要的朋友不妨参考下。

设置时间:
date -s (后面跟时间)

一、查看Linux硬件时间
hwclock

clock

hwclock –show

clock –show

二、修改Linux硬件时间
hwclock –set –date

clock –set –date

三、让系统时间与硬件时钟同步
hwclock –hctosys

clock –hctosys

四、让硬件时钟与系统时间同步
hwclock –systohc

clock –systohc

五、让系统时间每隔十分钟去同步一下硬件时间
[hqw@localhost root]$ vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
*/10 * * * * root hwclock --hctosys
#加入这么一行,表示每隔10分钟执行一次hwclock --hctosys。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3