cygwin chmod 失效
问题背景
为了在 Cygwin 下使用之前最喜爱的 screen 命令, 安装 Cygwin 时就选上了 screen

来运行一把
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
Directory '/tmp/uscreens' must have mode 777.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 777 uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ ll
total 0
drwxr-xr-x 1 ganiks.liu Domain Users 0 Jul 25 13:28 .
drwxr-xr-x 1 ganiks.liu Domain Users 0 Jul 25 13:10 ..
drwxr-xr-x 1 ganiks.liu Domain Users 0 Jul 25 13:49 uscreens
cygwin chmod 失效
为什么 chmod 失效呢?
查了原因是 当前 cygwin 所在磁盘 E:\ 盘格式为 Fat32, 不支持 权限管理。
好吧,来转 NTFS 吧
cmd就是个很不错的工具(经过实际运行,我否定了“不错”这个形容,因为整个过程花费了不知道多少个小时)
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\ganiks.liu>e:
E:\>convert E:/FS:NTFS /V
The type of the file system is FAT32.
Enter current volume label for drive E: DISK1_VOL3
Convert cannot run because the volume is in use by another
process. Convert may run if this volume is dismounted first.
ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID.
Would you like to force a dismount on this volume? (Y/N) Y
Volume dismounted. All opened handles to this volume are now invalid.
Convert cannot gain exclusive access to the E: drive,
so it cannot convert it now. Would you like to
schedule it to be converted the next time the
system restarts (Y/N)? Y
The conversion will take place automatically the next time the
system restarts.
E:\>
我转换的这个 E 盘, 从下午3点多开始转换, 一直到 5点下班的时候还在转换, 于是关掉显示器回家...
谢天谢地, 第二天早上来, 机器正常开机了, 而且 E盘 成功转换了 NTFS
用工具实现 windows 硬盘格式的转换
已经体会了 win 自带 转换命令的不靠谱(据同事说我算幸运的,花了这么久转换成功了, 有很多失败的, 可能是没有开启虚拟内存 or sth.)
来试试他们介绍的 2个工具吧
- partassist分区助手 (待测试)
- paragon Partion Manager 9.0


成功运行 screen 在 cygwin 中
经过千辛万苦转换了硬盘格式, 现在再来测试 screen
我变得非常脆弱, 貌似不能再接受 screen 不支持的其他问题了
其实这个心态非常不好, 因为程序员注定是为解决问题而生的, 遇到一个解决一个, 技能才得到提高
另外越是深入的解决一个问题,你会发现能打通到其他的领域, 对以后遇到别的问题很有可能是有帮助的
结束题外话, 这次确实运行成功了
ganiks.liu@MAMIS-Gaiks-Liu ~
$ screen.exe -ls
Directory '/tmp/uscreens' must have mode 777.
ganiks.liu@MAMIS-Gaiks-Liu ~
$ cd /tmp/
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ ll
total 0
drwxrwx---+ 1 Administrators root 0 Jul 25 13:28 .
drwxrwx---+ 1 Administrators root 0 Jul 25 13:10 ..
drwxrwx---+ 1 Administrators root 0 Jul 25 13:49 uscreens
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 777 uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ ll
total 0
drwxrwx---+ 1 Administrators root 0 Jul 25 13:28 .
drwxrwx---+ 1 Administrators root 0 Jul 25 13:10 ..
drwxrwxrwx+ 1 Administrators root 0 Jul 25 13:49 uscreens
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
You are not the owner of /tmp/uscreens/S-ganiks.liu.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -S aaa
You are not the owner of /tmp/uscreens/S-ganiks.liu.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chown ganiks.liu uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ ll
total 0
drwxrwx---+ 1 Administrators root 0 Jul 25 13:28 .
drwxrwx---+ 1 Administrators root 0 Jul 25 13:10 ..
drwxrwxrwx+ 1 ganiks.liu root 0 Jul 25 13:49 uscreens
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
Directory /tmp/uscreens/S-ganiks.liu must have mode 700.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 777 uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
Directory /tmp/uscreens/S-ganiks.liu must have mode 700.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 700 uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
Directory '/tmp/uscreens' must have mode 777.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ ll
total 0
drwxrwx---+ 1 Administrators root 0 Jul 25 13:28 .
drwxrwx---+ 1 Administrators root 0 Jul 25 13:10 ..
drwx------+ 1 ganiks.liu root 0 Jul 25 13:49 uscreens
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 777 uscreens/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ chmod 700 uscreens/S-ganiks.liu/ -R
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -ls
No Sockets found in /tmp/uscreens/S-ganiks.liu.
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$ screen.exe -S aa
[screen is terminating]
ganiks.liu@MAMIS-Gaiks-Liu /tmp
$
更改 cygwin machine name
对于有“不知道什么度”洁癖的人, 我总是会去想办法解决每一个“小问题”, 有可能这个问题根本对项目的进度没有关系
比如,我刚刚贴了这个代码, 发现机器名 MAMIS-Gaiks-Liu 丑陋无比, 我要改成 wswtech
印象中要改两个地方
- /etc/hosts
- /etc/hostname
- hostname your_new_name
cygwin chmod 失效的更多相关文章
- cygwin and its host machine
Senario 本来我是想要修改下 machine name 在Ubuntu中的步骤是这样的 1 sudo hostname newMechineName 2 sudo vi /etc/hostnam ...
- apt-cyg for Cygwin(setup-x86_64 .exe )在win10下的安装
cygwin安装后,如果没有选择安装所有包(这会占用5G空间,很多包不需要),再需要安装新的包,可以启动setup-x86_64 .exe(我把它放置在C:\cygwin64目录下),添加包(如wge ...
- Windows下安装Cygwin及包管理器apt-cyg(转)
本文为转载文章: http://www.2cto.com/os/201212/176551.html Cygwin可以在Windows下使用unix环境Bash和各种功能强大的工具,对于Linux管理 ...
- Installing Cygwin and Starting the SSH Daemon
This chapter explains how to install Cygwin and start the SSH daemon on Microsoft Windows hosts. Thi ...
- Cygwin下软件安装 - apt-cyg
安装了cygwin,但不能像centos上装yum,装东西很不方便.找了下可以用apt-cyg来安装软件. 1.下载apt-cyg $ wget raw.github.com/transcode-op ...
- [转]Cygwin的包管理器:apt-cyg
[转]Cygwin的包管理器:apt-cyg http://zengrong.net/post/1792.htm Cygwin的包管理工具setup.exe实在是难用的让人蛋碎.于是就有了这样一个ap ...
- 【转】Cygwin的包管理器:apt-cyg
原文网址:http://zengrong.net/post/1792.htm Cygwin的包管理工具setup.exe实在是难用的让人蛋碎.于是就有了这样一个apt-cyg,可以提供类似于 apt- ...
- 【搭建开发环境】在 Windows XP 中参与开源项目,搭建 git 和 cygwin 开发环境
引言 只有一台 Windows XP 家用机,却想在诸如 Git@OSC 之类的开源社区参与开发,本文提供一个入门级的开发环境搭建指引. 涉及工具:Eclipse,EGit,Cygwin. 欢迎来到 ...
- cygwin 扩展
1.使用setup,然后一路安装到select package,选择需要的包即可,然后一路next. 2.setup.exe -q -P 包名, 详细用法如下: Command Line Option ...
随机推荐
- [leetcode]_Sum Root to Leaf Numbers
题目:计算一棵二叉树所有路径组成的数的总和. 思考:也是DFS的基础应用.虽然还是套着别人的DFS框架写的,但是学习通常会经历先模拟,再创新的过程. 代码: private int sum = 0; ...
- Jquery调用Webservice传递Json数组
Jquery由于提供的$.ajax强大方法,使得其调用webservice实现异步变得简单起来,可以在页面上传递Json字符串到Webservice中,Webservice方法进行业务处理后,返回Js ...
- Linux获取用户主目录
#!/usr/bin/python# -*- coding:utf-8 -*-import sysimport osclass get_home_path(object): def __init__( ...
- 关于消除超长的case列表的一个思路
最近项目里面涉及和低层通信的一个模块,因为需要定义通信协议,然后一大堆指令,定义一个枚举的话就能看到几十上百的数据项,匹配操作的时候,那么问题来了,尼玛,这么多的case看着就头晕,就有了一个想法:怎 ...
- debian完整部署 Nginx + uWSGI + Django
手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...
- MIFARE系列7《安全性》
飞利浦的MIFARE卡由于它的高安全性在市场上得到广泛应用,比如我们乘车用的公交卡,学校和企业食堂的饭卡等等.它每个扇区有独立的密匙(6个字节的密码),在通信过程中首先要验证密匙才能读写数据.它的关键 ...
- Android--监听ListView滚动到最底部
监听ListView滚动到最底部使用 onScrollStateChanged(AbsListView view, int scrollState) 方法,代码大致如下: // 监听listview滚 ...
- hdu 2647 Reward
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2647 Reward Description Dandelion's uncle is a boss o ...
- 分享C#原生ID(流水号)生成功能实现
///, , )).TotalMilliseconds.ToString(")); /// <summary> /// /// </summ ...
- c++基础(二):成员he派生类
struct Date{ int day, month, year; }; struct Book{ string name; Date date; void init(string n, int y ...