下面根据实际工作中遇到的一个共享目录的多用户权限需求案例来说明下Samba用户权限的设置。

一、需求场景
领导:李一(liyi)
正式员工(zhengshiyuangong):刘二二(liuerer)、于三三(yusansan)、车四四(chesisi)、冯五五(fengwuwu)
实习生(shixisheng):步六六(buliuliu)、王七七(wangqiqi)

李一有整个共享盘的读写权限,其中共享盘整体分为存档区和编辑区,子目录按照如下顺序进行展示。
具体权限设置如下:

二、Samba服务器部署

1)安装Samba
[root@samba-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@samba-server ~]# rpm -qa|grep samba
[root@samba-server ~]# yum install -y samba 2)安全角度考虑,需要设置防火墙策略(不要关闭防火墙)
添加samba服务到防火墙策略中
[root@samba-server ~]# firewall-cmd --add-service samba --permanent
success 重启防火墙
[root@samba-server ~]# firewall-cmd --reload
success 查看samba服务是否添加到防火墙中:
[root@samba-server ~]# firewall-cmd --list-all|grep samba
services: ssh dhcpv6-client samba 一定要关闭selinux(否则会造成windows客户机连接Samba失败)
[root@samba-server ~]# vim /etc/sysconfig/selinux
.....
SELINUX=disabled [root@samba-server kevin]# setenforce 0
[root@samba-server kevin]# getenforce
Permissive 3)Samba服务配置
[root@samba-server ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it. [global]
workgroup = SAMBA
security = user passdb backend = tdbsam printing = cups
printcap name = cups
load printers = yes
cups options = raw [homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes [printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No [print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775 [公司共享目录]
comment = "公司共享目录下的账号权限"
path= /data/samba
public = no
valid users = liyi,chesisi,yusansan,liuerer,fengwuwu,buliuliu,wangqiqi,@samba
printable = no
write list = liyi,chesisi,yusansan,liuerer,fengwuwu,buliuliu,wangqiqi 4)创建共享目录
[root@samba-server ~]# useradd samba
[root@samba-server ~]# mkdir -p /data/samba/编辑区
[root@samba-server ~]# mkdir -p /data/samba/存档区
[root@samba-server ~]# chown -R samba.samba /data/samba
[root@samba-server ~]# cd /data/samba
[root@samba-server data]# ll samba
总用量 0
drwxr-xr-x 7 samba samba 142 3月 28 03:52 编辑区
drwxr-xr-x 12 samba samba 280 3月 28 03:51 存档区 5)添加各samba账号
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin liyi
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin chesisi
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin yusansan
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin liuerer
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin fengwuwu
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin buliuliu
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin wangqiqi
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin zhengshiyuangong
[root@samba-server ~]# useradd -d /data/samba -s /sbin/nologin shixisheng [root@samba-server ~]# pdbedit -a -u liyi
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u chesisi
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u yusansan
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u liuerer
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u fengwuwu
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u buliuliu
new password:
retype new password:
....... [root@samba-server ~]# pdbedit -a -u wangqiqi
new password:
retype new password:
....... 查看samba账号列表
[root@samba-server ~]# pdbedit -L
yusansan:1001:
liuerer:1004:
fengwuwu:1006:
liyi:1003:
chesisi:1005:
buliuliu:1009:
wangqiqi:1010: 6)设置共享目录权限
[root@samba-server samba]# ll
总用量 0
drwxr-xr-x 7 samba samba 142 3月 28 03:52 编辑区
drwxr-xr-x 12 samba samba 280 3月 28 03:51 存档区
[root@samba-server samba]# cd 存档区 [root@samba-server 存档区]# mkdir 01-重大事项
[root@samba-server 存档区]# chown -R liyi.liyi /data/samba/存档区/01-重大事项
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/01-重大事项 [root@samba-server 存档区]# mkdir 02-战略投资
[root@samba-server 存档区]# chown -R liuerer.liuerer /data/samba/存档区/02-战略投资
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/02-战略投资
[root@samba-server 存档区]# setfacl -R -m u:fengwuwu:rx /data/samba/存档区/02-战略投资 [root@samba-server 存档区]# mkdir 03-战略规划
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/03-战略规划
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/03-战略规划
[root@samba-server 存档区]# setfacl -R -m u:liuerer:rx /data/samba/存档区/03-战略规划 [root@samba-server 存档区]# mkdir 04-公司治理
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/04-公司治理
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/04-公司治理
[root@samba-server 存档区]# setfacl -R -m u:chesisi:rwx /data/samba/存档区/04-公司治理
[root@samba-server 存档区]# setfacl -R -m g:zhengshiyuangong:rx /data/samba/存档区/04-公司治理
[root@samba-server 存档区]# gpasswd -a liuerer zhengshiyuangong
[root@samba-server 存档区]# gpasswd -a yusansan zhengshiyuangong
[root@samba-server 存档区]# gpasswd -a chesisi zhengshiyuangong
[root@samba-server 存档区]# gpasswd -a fengwuwu zhengshiyuangong [root@samba-server 存档区]# mkdir 05-股东信息
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/05-股东信息
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/05-股东信息
[root@samba-server 存档区]# setfacl -R -m u:chesisi:rwx /data/samba/存档区/05-股东信息 [root@samba-server 存档区]# mkdir 06-上层股东
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/06-上层股东
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/06-上层股东
[root@samba-server 存档区]# setfacl -R -m u:fengwuwu:rwx /data/samba/存档区/06-上层股东 [root@samba-server 存档区]# mkdir 07-投关管理
[root@samba-server 存档区]# chown -R fengwuwu.fengwuwu /data/samba/存档区/07-投关管理
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/07-投关管理
[root@samba-server 存档区]# setfacl -R -m u:chesisi:rx /data/samba/存档区/07-投关管理 [root@samba-server 存档区]# mkdir 08-制度信批
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/08-制度信批
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/08-制度信批
[root@samba-server 存档区]# setfacl -R -m g:zhengshiyuangong:rx /data/samba/存档区/08-制度信批 [root@samba-server 存档区]# mkdir 09-部门综合
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/09-部门综合
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/09-部门综合
[root@samba-server 存档区]# setfacl -R -m g:zhengshiyuangong:rwx /data/samba/存档区/09-部门综合 [root@samba-server 存档区]# mkdir 10-学习共享
[root@samba-server 存档区]# chown -R yusansan.yusansan /data/samba/存档区/10-学习共享
[root@samba-server 存档区]# chmod -R 700 /data/samba/存档区/10-学习共享
[root@samba-server 存档区]# setfacl -R -m g:zhengshiyuangong:rwx /data/samba/存档区/10-学习共享
[root@samba-server 存档区]# setfacl -R -m g:shixisheng:rx /data/samba/存档区/10-学习共享
[root@samba-server 存档区]# gpasswd -a buliuliu shixisheng
[root@samba-server 存档区]# gpasswd -a wangqiqi shixisheng [root@samba-server 存档区]# cd ../编辑区/
[root@samba-server 编辑区]# mkdir /data/samba/编辑区/01-材料
[root@samba-server 编辑区]# chown -R yusansan.yusansan /data/samba/编辑区/01-材料
[root@samba-server 编辑区]# chmod -R 700 /data/samba/编辑区/01-材料
[root@samba-server 编辑区]# setfacl -R -m u:liuerer:rwx /data/samba/编辑区/01-材料 [root@samba-server 编辑区]# mkdir /data/samba/编辑区/02-周报
[root@samba-server 编辑区]# chown -R liuerer.liuerer /data/samba/编辑区/02-周报
[root@samba-server 编辑区]# chmod -R 700 /data/samba/编辑区/02-周报
[root@samba-server 编辑区]# setfacl -R -m u:fengwuwu:rwx /data/samba/编辑区/02-周报 [root@samba-server 编辑区]# mkdir /data/samba/编辑区/03-总结
[root@samba-server 编辑区]# chown -R yusansan.yusansan /data/samba/编辑区/03-总结
[root@samba-server 编辑区]# chmod -R 700 /data/samba/编辑区/03-总结
[root@samba-server 编辑区]# setfacl -R -m u:chesisi:rwx /data/samba/编辑区/03-总结 [root@samba-server 编辑区]# mkdir /data/samba/编辑区/04-记录
[root@samba-server 编辑区]# chown -R yusansan.yusansan /data/samba/编辑区/04-记录
[root@samba-server 编辑区]# chmod -R 700 /data/samba/编辑区/04-记录
[root@samba-server 编辑区]# setfacl -R -m g:zhengshiyuangong:rwx /data/samba/编辑区/04-记录 [root@samba-server 编辑区]# mkdir /data/samba/编辑区/05-人员
[root@samba-server 编辑区]# chown -R yusansan.yusansan /data/samba/编辑区/05-人员
[root@samba-server 编辑区]# chmod -R 700 /data/samba/编辑区/05-人员
[root@samba-server 编辑区]# setfacl -R -m g:zhengshiyuangong:rwx /data/samba/编辑区/05-人员
[root@samba-server 编辑区]# setfacl -R -m g:shixisheng:rwx /data/samba/编辑区/05-人员 [root@nextcloud ~]# cd /data/samba/存档区
[root@nextcloud 存档区]# ll
总用量 0
drwxrwx---+ 2 liyiyi liyiyi 10 3月 28 03:53 01-重大事项
drwxrwx---+ 2 liuerer liuerer 10 3月 28 00:01 02-战略投资
drwxrwx---+ 2 yusansan yusansan 10 3月 28 00:05 03-战略规划
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:19 04-公司治理
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:19 05-股东信息
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:20 06-上层股东
drwxrwx---+ 2 fengwuwu fengwuwu 10 3月 28 02:20 07-投关管理
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:23 08-制度信批
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:33 09-部门综合
drwxrwx---+ 2 yusansan yusansan 10 3月 28 03:54 10-学习共享
[root@nextcloud 存档区]# cd ../编辑区/
[root@nextcloud 编辑区]# ll
总用量 0
drwxrwx---+ 2 yusansan yusansan 10 3月 28 03:56 01-材料
drwxrwx---+ 2 liuerer liuerer 10 3月 28 02:39 02-周报
drwxrwx---+ 2 yusansan yusansan 10 3月 28 03:33 03-总结
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:41 04-记录
drwxrwx---+ 2 yusansan yusansan 10 3月 28 02:43 05-人员 由于李峰有整个共享盘的读写权限,所以还需给liyi账号设置所有子目录的读写权限
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/01-重大事项
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/02-战略投资
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/03-战略规划
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/04-公司治理
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/05-股东信息
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/06-上层股东
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/07-投关管理
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/08-制度信批
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/09-部门综合
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/存档区/10-学习共享 [root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/编辑区/01-材料
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/编辑区/02-周报
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/编辑区/03-总结
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/编辑区/04-记录
[root@samba-server ~]# setfacl -R -m u:liyi:rwx /data/samba/编辑区/05-人员

三、在windows本机登录Samba,验证各用户针对各个子目录的读写权限

按键Ctrl+E,打开“此电脑”,然后点击左侧栏的“网络”,接着在上侧的网络栏目里输入samba地址( 比如samba部署机ip为192.168.10.10):\\192.168.10.10,然后输入samba账号和密码,就可以登录到Samba共享目录了了。如上部署后,可以逐个验证各个samba账号对各个子目录的读写权限。

温馨提示:
1)如上配置,登录Samba后,会显示两个目录:一个是账号目录(没有访问权限,不需要访问),一个就是samba共享目录了(在smb.conf里定义的共享名称,这个可以访问),如下图:

2)如何将samba共享目录保存到本地电脑上,从而不需要每次都输入账号和密码信息?
初次登录samba,看到共享目录后,可以右击共享目录,选择"映射网络驱动器",这样就将samba共享目录通过网络驱动器的方式保存到本地了,如下图:

===================================================================
温馨提示:

以上的权限设置后,还是有一些问题的。就是说,新建文件的权限是没有问题的,但是当一个文件新建后,另一个用户就没有权限去操作了。
比如,yusansan用户在/data/samba/编辑区/05-实习生目录下创建一个test文件,这时test文件的所有者是yusansan,那么fengwuwu等其他用户
就不能对这个test文件进行写操作了。 要想解决上面的问题,可以写一个脚本,将上面赋予的权限动作循环执行(写一个简单的死循环脚本,去一直执行),如下: [root@samba-server ~]# cat /opt/samba_quanxian.sh
#!/bin/bash while [ "1" = "1" ]
do #设置存档区权限
/usr/bin/chown -R liyi.liyi /data/samba/存档区/01-重大事项
/usr/bin/chmod -R 700 /data/samba/存档区/01-重大事项
/usr/bin/chown -R liuerer.liuerer /data/samba/存档区/02-战略投资
/usr/bin/chmod -R 700 /data/samba/存档区/02-战略投资
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/03-战略规划
/usr/bin/chmod -R 700 /data/samba/存档区/03-战略规划
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/04-公司治理
/usr/bin/chmod -R 700 /data/samba/存档区/04-公司治理
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/05-股东信息
/usr/bin/chmod -R 700 /data/samba/存档区/05-股东信息
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/06-上层股东
/usr/bin/chmod -R 700 /data/samba/存档区/06-上层股东
/usr/bin/chown -R fengwuwu.fengwuwu /data/samba/存档区/07-投关管理
/usr/bin/chmod -R 700 /data/samba/存档区/07-投关管理
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/08-制度信批
/usr/bin/chmod -R 700 /data/samba/存档区/08-制度信批
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/09-部门综合
/usr/bin/chmod -R 700 /data/samba/存档区/09-部门综合
/usr/bin/chown -R yusansan.yusansan /data/samba/存档区/10-学习共享
/usr/bin/chmod -R 700 /data/samba/存档区/10-学习共享 /usr/bin/setfacl -R -m u:fengwuwu:rx /data/samba/存档区/02-战略投资
/usr/bin/setfacl -R -m u:liuerer:rx /data/samba/存档区/03-战略规划
/usr/bin/setfacl -R -m u:chesisi:rwx /data/samba/存档区/04-公司治理
/usr/bin/setfacl -R -m g:zhengshiyuangong:rx /data/samba/存档区/04-公司治理
/usr/bin/setfacl -R -m u:chesisi:rwx /data/samba/存档区/05-股东信息
/usr/bin/setfacl -R -m u:fengwuwu:rwx /data/samba/存档区/06-上层股东
/usr/bin/setfacl -R -m u:chesisi:rx /data/samba/存档区/07-投关管理
/usr/bin/setfacl -R -m g:zhengshiyuangong:rx /data/samba/存档区/08-制度信批
/usr/bin/setfacl -R -m g:zhengshiyuangong:rwx /data/samba/存档区/09-部门综合
/usr/bin/setfacl -R -m g:zhengshiyuangong:rwx /data/samba/存档区/10-学习共享 #设置编辑区权限
/usr/bin/chown -R yusansan.yusansan /data/samba/编辑区/01-开蓉开乐
/usr/bin/chmod -R 700 /data/samba/编辑区/01-开蓉开乐
/usr/bin/chown -R liuerer.liuerer /data/samba/编辑区/02-开蓉冯博
/usr/bin/chmod -R 700 /data/samba/编辑区/02-开蓉冯博
/usr/bin/chown -R yusansan.yusansan /data/samba/编辑区/03-开乐一鸣
/usr/bin/chmod -R 700 /data/samba/编辑区/03-开乐一鸣
/usr/bin/chown -R yusansan.yusansan /data/samba/编辑区/04-正式员工
/usr/bin/chmod -R 700 /data/samba/编辑区/04-正式员工
/usr/bin/chown -R yusansan.yusansan /data/samba/编辑区/05-人员
/usr/bin/chmod -R 700 /data/samba/编辑区/05-人员 /usr/bin/setfacl -R -m u:liuerer:rwx /data/samba/编辑区/01-材料
/usr/bin/setfacl -R -m u:fengwuwu:rwx /data/samba/编辑区/02-开蓉冯博
/usr/bin/setfacl -R -m u:chesisi:rwx /data/samba/编辑区/03-开乐一鸣
/usr/bin/setfacl -R -m g:zhengshiyuangong:rwx /data/samba/编辑区/04-正式员工
/usr/bin/setfacl -R -m g:zhengshiyuangong:rwx /data/samba/编辑区/05-实习生
/usr/bin/setfacl -R -m g:shixisheng:rwx /data/samba/编辑区/05-实习生 #设置李一总权限
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/01-重大事项
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/02-战略投资
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/03-战略规划
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/04-公司治理
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/05-股东信息
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/06-上层股东
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/07-投关管理
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/08-制度信批
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/09-部门综合
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/存档区/10-学习共享 /usr/bin/setfacl -R -m u:liyi:rwx /data/samba/编辑区/01-材料
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/编辑区/02-周报
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/编辑区/03-总结
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/编辑区/04-记录
/usr/bin/setfacl -R -m u:liyi:rwx /data/samba/编辑区/05-人员 done 然后执行脚本:
[root@samba-server ~]# nohup sh /opt/samba_quanxian.sh & //按键ctrl+c
[root@samba-server ~]# ps -ef|grep samba_quanxian.sh
root 83870 82538 61 23:32 pts/0 00:05:17 sh samba_quanxian.sh
root 164997 82538 0 23:41 pts/0 00:00:00 grep --color=auto samba_quanxian.sh 这样,在各个区域的目录下创建的文件,就会及时被赋予相应权限。 ===========================================================================
然而后续又发现了一个问题:
上面循环脚本实时执行后,发现用acl授权的用户访问samba目录时,有时有权访问,有时无权访问(提示没有权限,句柄无效)。
最后将脚本中的循环语句(while,do,done)删除,取消实时执行,在crontab里设置每10秒钟执行一次,调整后问题解决。
[root@samba-server ~]# crontab -l
* * * * * /bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1
* * * * * sleep 10;/bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1
* * * * * sleep 20;/bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1
* * * * * sleep 30;/bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1
* * * * * sleep 40;/bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1
* * * * * sleep 50;/bin/bash -x /opt/samba_quanxian.sh > /dev/null 2>&1

Python-面向对像及其他的更多相关文章

  1. Python面向过程、模块的使用

    一.Python面向过程 ''' 面向过程编程 核心过程二字,过程指的是解决问题的步骤,即先干什么.再干什么.然后干什么... 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式 优点 ...

  2. Python面向切面编程-语法层面和functools模块

    1,Python语法层面对面向切面编程的支持(方法名装饰后改变为log) __author__ = 'Administrator' import time def log(func): def wra ...

  3. Python 面向導向語言 Object Oriented Programming Language

    Pytho 是面向對象的程式語言,舉凡 Literals 值都是 Object.例如: >>> id(38)8791423739696 與 >>> id('ABC' ...

  4. Numba——python面向数组高性能计算库

    python在计算性能上相对c是比较弱鸡的,有了numpy后计算性能短板是补了一些,而Numba库又给python计算性能加了发动机(忽然想到西虹市首富王多鱼的名言:我再加200万,给冰山提提速.), ...

  5. python面向编程: 常用模块补充与面向对象

    一.常用模块 1.模块 的用用法 模块的相互导入 绝对导入 从sys.path (项目根目录)开始的完整路径 相对导入 是指相对于当前正在执行的文件开始的路径 只能用于包内模块相互间导入 不能超过顶层 ...

  6. Python面向过程和面向对象基础

    总结一下: 面向过程编程:根据业务逻辑从上到下的写代码-----就是一个project写到底,重复利用性比较差 函数式:将某些特定功能代码封装到函数中------方便日后调用 面向对象:对函数进行分类 ...

  7. python 面向过程和面向对象比较

    面向过程 VS 面向对象 面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是:复杂度 ...

  8. python面向编程;类的绑定与非绑定方法、反射、内置方法

    一.类的绑定与非绑定方法 ''' 类中定义函数分为了两大类: 1. 绑定方法 特殊之处: 绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数自动传入 绑定给对象的方法: 在类中定义函数没有被任何 ...

  9. python面向编程:类的组合、封装、property装饰器、多态

    一.组合 二.封装 三.propert装饰器 四.多态 一.组合 ''' 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之为组合 2. 为何用组合 组合也是用来解决类与类代码冗余的问题 ...

  10. python面向编程:面向对象、init、绑定方法、案例练习

    一.类的定义 二.面向对象概念三.对象的使用四.__init__函数的使用五.绑定方法六.面向对象联系 一.类的定义 1.什么叫做类? 类就是分类,类型的意思,一堆具备相同特征和行为的事物的抽象概念 ...

随机推荐

  1. RHEL7软件包管理

    本文介绍RHEL7的软件包管理 RHEL7下主要有RPM和YUM这两种包管理: YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包并获取该包依赖的其他包 RPM的需要的操作精度比 ...

  2. CRM 2013 安装前系统和数据库的基础配置

    Win Serer 2012 域控安装参考:http://smallc.blog.51cto.com/926344/1034868  (其中最重要的几步:创建域控(ActiveDirectory域服务 ...

  3. java多线程系列2-线程控制

    前面的文章已经介绍了有关线程的调度,接下来介绍如何使用方法对线程进行控制 1.线程休眠 public static void sleep(long millis) /* * 线程休眠 * public ...

  4. App开发流程之通用宏定义及头文件

    工欲善其事,必先利其器. 在正式实现各种炫酷的功能和UI前,做好准备工作是提高后续开发效率的必经之路. 所以,这个系列,我不是在各种堆技术,更关注的是“兵马动”之前的“粮草行”,有些繁琐,但当清晰理出 ...

  5. jvm运行时环境属性一览

    前言: 在web编程技术内幕中看到一个用apache组件进行文件下载的例子,对于DiskFileUpload类的setRepositoryPath方法,设置临时文件的存放路径,里面指出如果不调用该方法 ...

  6. iOS开发之网络编程--3、NSURLSessionDataTask实现文件下载(离线断点续传下载)

    前言:使用NSURLSessionDownloadTask满足不这个需要离线断点续传的下载需求,所以这里就需要使用NSURLSessionDataTask的代理方法来处理下载大文件,并且实现离线断点续 ...

  7. 多线程基础(五)NSThread线程通信

    5.多线程基础 线程间通信   什么叫线程间通信 在一个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信   线程间通信的体现 1个线程传递数据给另一个线程 在1个线程中执行完特定任务后, ...

  8. 快速与MySQL交互,使用XMAPP打开MySQL数据库,并用shell进行与MySQL交互<Window 10>

    1.如果想要通过XAMPP shell登录MySQL,还需要下载安装好XAMPP. 2.双击打开xampp-control.exe,会出现以下界面,点击开启Apache和MySQL,这样我们就开启服务 ...

  9. 阿里云上安装vsftp笔记

    安装 ftp 1 ssh登录服务器       首先检查有没有安装运行 ps -ef |grep vsftpd         2 yum安装vsftpd        yum安装    yum in ...

  10. mybatis3.3 + struts2.3.24 + mysql5.1.22开发环境搭建及相关说明

    一.新建Web工程,并在lib目录下添加jar包 主要jar包:struts2相关包,mybatis3.3相关包,mysql-connector-java-5.1.22-bin.jar, gson-2 ...