sudu、文件共享(vsftp、samba、nfs)

sudo:授权之后,能够让某用户以另外一个用户身份运行命令;

配置文件:/etc/sudoers;其编辑命令visudo

sudo操作日志记录至/var/log/secure中

特别注意:禁止授权修改root密码;! passwd root,passwd [a-Z]*

配置项:

root ALL=(ALL) ALL

%wheel ALL=(ALL) ALL

%wheel ALL=(ALL)  NOPASSWD: ALL     :无需密码

某用户|组     通过哪些主机=(以哪个用户的身份)     运行哪些命令

定义别名:格式

Alias_Type NAME =  item1,item2,…

NAME:必须使用全大写字母;

Alias_Type有如下几种:

User_Alias:用户别名

Host_Alias:主机别名

Runas_Alias:用户身份别名

Cmnd_Alias:命令别名

 

常用选项:

-V:显示版本

-h:显示帮助信息

-l:显示其执行sudo所拥有的权限

-b:将执行的命令放在后台执行

-u username:切换至指定用户,默认为root

-k:清除此前记录的用户密码

 

文件共享服务:
应用层:ftp
内核:nfs (Sun)
跨平台:samba;在Linux实现CIFS(SMB)协议
ftp: File Transfer Protocol
应用层协议:tcp, 21/tcp
C/S:
Client: 程序:ftp、lftp、filezilla、gftp(linux gui)
Server: 程序:IIS、Serv-U、pureftp、proftpd、vsftpd(very secure ftp daemon)
数据:
命令连接:文件管理类命令,始终在线的连接
数据连接:数据传输,按需创建及关闭的连接
主动active和被动passive模式是基于服务器角度而言
主动:由服务器创建连接;弊端:由于主动连接到客户端,基本会给防火墙阻挡;
命令:
Client:50000 –> Server: 21
数据:
Server: 20/tcp –> Client: 50000+1
被动:由客户端创建连接;弊端:由于服务器自行开启一个随机端口负责数据连接,因此服务器本身的防火墙应该开通连接追踪功能;
命令:
Client:50000 –> Server: 21
数据:
Client:50000+1 –> Server: 随机端口
数据传输格式:
文本传输
二进制传输

ftp用户的类型:

匿名用户:anonymous或ftp;其登录目录为其ftp的家目录/var/ftp;

本地用户:账号名称、密码等信息保存在passwd、shadow文件中;其登录目录为该系统用户的家目录下;

虚拟用户:使用独立的账号、密码数据文件;其登录目录为映射用户的家目录;

 

响应码:
1xx: 信息
2xx: 成功类的状态码
3xx: 提示需进一步提供补充类信息的状态码
4xx: 客户端错误
5xx: 服务端错误

 

用户认证:虚拟用户:仅用于访问某特定服务中的资源;
nsswitch:network server switch,名称解析框架
配置文件:/etc/nsswitch.conf
模块:/lib64/libnss*、/usr/lib64/libnss*
pam:pluggable authentication module,用户认证框架
配置文件:/etc/pam.conf、/etc/pam.d/*
模块:/lib64/security/*

vsftpd主配置文件/etc/vsftpd/vsftpd.conf

用户认证配置文件:/etc/pam.d/vsftpd

 

匿名用户的相关配置:

是否开启:anonymous_enable=YES

上传权限:anon_upload_enable=YES

创建目录权限:anon_mkdir_write_enable=YES

其他权限:anon_mkdir_write_enable=YES

 

本地用户的相关配置

是否开启:local_enable=YES

是否可写:write_enable=YES

上传文件的默认权限:local_umask=022

禁锢所有本地用户在家目录中:chroot_local_user=YES

禁锢指定的本地用户在家目录中:chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list

 

日志:xferlog_enable=YES、xferlog_std_format=YES、xferlog_file=/var/log/xferlog

 

改变上传文件的属主:chown_uploads=YES、chown_username=whoever

是否启用控制用户登录的列表文件:userlist_enable=YES、userlist_deny=YES|NO,其默认文件为/etc/vsftpd/user_list

连接限制:

max_clients:最大并发连接数

max_per_ip:每个IP可同时发起的并发连接数

 

传输速率:

anon_max_rate:所有匿名用户的最大传输速率,单位是字节/秒;

local_max_rate:所有本地用户的最大传输速率,单位是字节/秒;

 

虚拟用户:所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置为系统账号的家目录;

各虚拟用户可被赋予不同的访问权限:通过匿名用户的权限控制参数进行指定;

虚拟用户账号的存储方式:

1、文本:此文本文件需要被编码为hash格式,编辑文本,奇数行为用户,偶数行为对应用户密码;

2、关系型数据库的表中:即时查询数据库完成用户认证;mariad|mysql依赖于pam_mysql;

 

centos7:vsftpd+pam+mariadb

1、安装mariadb和vsftpd、pam_mysql

# yum groupinstall “development tools” “server plantform development”

# yum install mariadb-server vsftpd pam-devel openssl-devel

手动编译安装pam_mysql

# tar xf

# ./configure –with-mysql=/usr –with-openssl=/usr –with-pam-mods-dir=/lib64/security

# make && make install

2、创建所需的数据库和表

MariaDB>      CREATE DATABASE vsftpd;

MariaDB>      GRANT select ON vsftpd.* TO vsftpd@’localhost’ IDENTIFIED BY ‘test123′;

MariaDB>      GRANT select ON vsftpd.* TO vsftpd@’127.0.0.1’ IDENTIFIED BY ‘test123’;

MariaDB>      CREATE TABLE users (id int AUTO_INCREMENT NOT NULL PRIMARY KEY,name char(30) binary NOT NULL,password char(48) binary NOT NULL);

MariaDB>      INSERT INTO users (name,password) VALUES (‘tom’,password(‘tom123’));

MariaDB>      INSERT INTO users (name,password) VALUES (‘jerry’,password(‘jerry123’));

3、配置使用虚拟用户

pam_service_name=vsftpd.mysql     相对路径为/etc/pam.d/下  需自行创建/etc/pam.d/vsftpd.mysql,如下

auth required pam_mysql.so user=vsftpd passwd=vsftpd123 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so user=vsftpd passwd=vsftpd123 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password  crypt=2

 

添加虚拟用户映射的系统用户:vuser

# useradd -s /sbin/nologin -d /ftproot

# chown root:root /ftproot     注意:映射用户的家目录需取消写权限,否则无法登陆;

# chmod go+rx /ftproot

并编辑/etc/vsftpd/vsftpd.conf

local_enable=YES

chroot_local_user=YES

guest_enable=YES                    启用来宾用户

guest_username=vuser           虚拟用户映射的用户名

 

设置不同虚拟用户不同权限:

1、编辑vsftpd.conf,添加

user_config_dir=/etc/vsftpd/vuser_config

2、在该vuser_config目录下创建用户同名文件设置权限;例如:

# vim /etc/vsftpd/vuser_config/tom

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

 

 

nfs:network file system;内核实现的unix-like下的文件共享;借助rpc远程过程调用;nfs:tcp|udp 2049;

命令rpcinfo:用来报告rpc信息;-p 查看各已注册的端口;

nfs服务器:nfsd、moutd、imapd

 

# yum install nfs-utils

导出目录配置/etc/exports和/etc/exports.d/*.exports

每一行格式:

/path/to/somedir        ip|net(export opt1,opt2)

其常用选项:

rw:读写,默认ro(只读)

root_squash:root权限压缩为nobody;默认设置

all_squash:所有用户权限压缩为nobody;

async:异步传输;sync同步传输

anonuid:指定映射为某特定uid

anongid:指定映射为某特定gid

 

维护nfs文件系统,重新导出nfs文件系统

exportfs -ar

 

客户端查看nfs共享

showmount -e ip

 

挂载nfs共享:

mount -t nfs nfs服务器:/dir   挂载点

挂载常用参数:

rsize:读缓冲大小

wsize:写缓冲大小

proto:指定传输协议tcp|udp

timeo:超时时长,单位为十分之一秒;

_netdev:告诉内核这是挂载网络设备,避免无法开机;

 

 

samba:跨平台文件共享;通过cifs

smb:server message block:服务消息块

cifs:common internet file system:通用互联网文件系统

137/udp,138/udp:用于netbios,windows基于主机名实现互相通信的机制;最长15个字符

139/tcp,445/tcp:

samba:

nmbd:netbios

smbd:cifs

winbindd:让linux加入windows的ad域控

1、交互式数据访问

探测samba服务器的共享信息:smbclient -L HOST -U USERNAME

连接samba,访问共享:smbclient //SERVER/shared_name -U USERNAME

2、挂载方式访问

mount -t cifs //SERVER/shared_name   /mount_point -o username=USERNAME,password=PASSWORD

 

服务器:# yum install samba -y

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

centos6下web配置工具:samba-swat

测试配置文件语法错误:testparm

a、全局设定:

workgroup = WORKGROUP                       :工作组
server string = Samba Server Version %v

netbios name = sambaserver                        :netbios名称

security = :设定安全级别;share:匿名共享;user:使用samba管理的帐号和密码;domain:使用DC域控;

passwd backend = tdbsam :使用windows的sam存储密码

display charset =  :当前samba服务所用字符集

unix charset = :当前linux主机所用字符集

dos charset = :windows端的字符集

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.12. 192.168.13.

 

b、某特定共享的设定:

1、私有家目录

2、打印机共享

3、自定义共享

[shared_name]

path = /path/to/share_dir

comment = 注释信息

guest ok =  yes|no、public = yes|no

writable = yes|no、read only = yes|no  :是否所有用户可写

browseable = yes|no:所有用户是否可浏览

write list = +|@GROUP_NAME    :仅指定用户或组可写

 

samba用户:

账号:都是系统用户,/etc/passwd

密码:samba服务自有密码文件

samba用户管理命令:pdbedit [options]

-L:显示所有samba用户

-v:显示详细信息

-a -u USERNAME:添加用户

-x:删除指定用户

-r:修改指定用户

 

将系统用户转换为samba用户的命令:smbpasswd

-a:添加用户

-d:禁用

-e:启用

-x:删除

 

可用宏列表:

%m:客户端主机的netbios名称

%M:客户端主机的hostname

%H:当前用户的家目录

%U:当前用户的用户名

%g:当前用户的组名

%h:当前samba主机的hostname

%I:客户端主机ip

%T:当前的日期时间

 

服务器端显示samba的相关共享状态信息:smbstatus

-b:简要信息

-v:显示详细信息

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99779

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班