20步打造完美网站布局设计

<p>Claudio Guglieri 在纽约广告公司 B-Reel 任职总监,他撰写了本网站设计培训指南,通过分享自己多年从事设计工作中看到的一些常见错误,尤其是“网站设计培训”中所述的实习生和新手们的通病。来帮助您了解设计网站布局的全过程。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>01. 先在纸上整理思绪</p><p>世界各处城市插图系列简笔</p><p>此 条显然很重要,但是我经常发现一些设计师会跳过这步直接使用 Photoshop CS6 而不去思考他们需要解决的问题。设计的目的在于解决问题,而这些有待解决的问题无法通过渐变或阴影效果得到解决,而是需要完美的布局和清晰的结构。想一想 内容、布局和功能,然后再开始上阴影效果。</p><p></p><p>02. 从顶层框架草图入手 UX sketch</p><p>草绘基本的框架将帮助你解决 UX 问题,并组织布局结构</p><p>如果我要做一个项目的外观和感觉,第一件事就是先建一个顶层框架,可解决所有设计问题。框架是指内容周围的 UI,有助于执行操作并进行浏览。其中包括导航和各类组件,例如边栏和底栏。如果你从这点着手设计,则设计主页以外的部分时,布局内容将了然于心。</p><p></p><p>03. 为 PSD 添加网格</p><p></p><p>以 10 像素基线绘制的 978 网格示例</p><p>这 步操作非常简单。在 Photoshop 中着手设计任何内容前,你需要创建一个合适的网格。这一步的道理众所周知,如果你没有这么做,我可以断言,最后的设计总是无法尽善尽美。借助于网格,你能 安排不同部分的布局结构;还能指导你按照特定屏幕尺寸要求进行设计,并能帮助你创建相应的模板,以便符合间距和其他设计问题。</p><p>04. 选择排版样式</p><p></p><p>根 据常规经验,一个网站布局中所用字型最好不要超过两种。了解不同的字型和配色是项目开发阶段的工作。我建议一个网站中所用字型不要超过两种,不过 实际上,还需取决于你可用的色系。总之,所选字体需便于阅读大量文字,且与标题和操作相映成趣。大胆使用大字体,并在使用字型时保持整体一致性和生动感。</p><p>05. 选择主题颜色</p><p></p><p>使用有限的色阶和色调以免产生视觉疲劳。</p><p>选 完要使用的一系列字型后,你应开始研究 UI、背景和文本该用什么颜色。关于颜色,我建议在处理常规用户界面是用色及色调需简洁。根据元素功能在设计 UI 时保持一致性非常重要。想想 Facebook、Twitter、Quora 和 Vimeo 之类的网站布局。除 UI 外,插图或图形细节部分只要没有干扰组件功能的话,在用色方面也没什么限制。</p><p>06. 划分布局</p><p></p><p>网 站结构越简单,用户浏览时就越方便。网站各个部分都需要发挥各自的作用。对于用户而言,每个部分都有各自存在的理由,并能得到相应的最终结果。布 局需要帮助强调其内容着重显示该部分最重要的信息。实际上,一个页面并不需要太多调用按钮,因此每个内容都应推动到最终“我可以在此实现什么目的”。思考 一下,你可以为一个简单的目标构想到的最简单的布局,并开始添加所需组件。最后你会惊喜的发现简洁也并非易事。</p><p>07. 重新思考已建内容</p><p></p><p>我们真的还需要一个搜索按钮吗?在大多数情况下,答案是不。</p><p>作 为设计人员,我们构建了用户浏览互联网的方式,需要采取多少步骤才能执行一个简单的操作以及网站的复杂性都是由我们来决定的。我们一直都在遵循一 些设计模式和惯例,因为它们切实有效,但有时候只是因为没人有足够的时间进行衡量或者重新思考。重新思考组件上已建的交互模式,并看看是否可以进行改进, 这点至关重要。</p><p>08. 自我挑战</p><p>我鼓励每位设计人员不要墨守成规,而是在每个项目上进 行自我挑战。并非每个项目都要求创新,因此,需要我们自己决定是否要增加一些交互设计相关的内 容。比如,各种自我挑战可能包括使用新的网格系统、创建新的组件,或者甚至包括一些小挑战,诸如避免混合模式或者避免使用特定的颜色。</p><p>09. 注意细节</p><p></p><p>正在进行的游戏项目:细节视图</p><p>这条也算是老生常谈了,但并非始终在成品中得到应用。根据项目的概念,“关注点”也会有所不同。可以注重小型交互、意想不到的动画或审美感受,例如按钮上的小渐变或是背景盒子周围的微妙笔画之类。但是总的来说,如果你乐在其中,这种感受非常重要,而且非常自然。</p><p>10. 认真对待每个组件,就当参加设计比赛</p><p></p><p>注重每个组件,一加一大于二</p><p>我必须承认这并不是我首创的理论。过去曾在 Fantasy Interactive 上听到这种说法,当时我就震惊了,这句话如此明确中肯。每个组件都需单独设计,使其卓绝超凡。有时候,设计师会将一些部分归为最不重要的内容,最终并不会对其引起重视。</p><p>11. 提高设计作品清晰度</p><p> </p><p>避免出现像素模糊的现象,尝试正确设置笔触效果和背景之间的对比度或背景颜色</p><p>除美学考量之外,有些共同的问题需要予以避免,从而创造出一个干净正确的作品。尝试提高设计清晰度时应注意以下几点:梯度条带、模糊的边缘、字体渲染选项(部分字体取决于字体大小,最好在特定的渲染模式下查看)以及与背景融合的笔触效果。</p><p>12. 整理如果你通过 Photoshop 进行设计,那么这点至关重要(结合网格使用)。无论项目有多大,有多少设计师参与其中,你都需要保证文件干净。这样就能保证不同部分都能轻松导出,从而提高设计流程的速度,并能处理与其他设计师共享的文件。</p><p>13. 设计最好的情况,但为最坏的情况做准备</p><p></p><p>谨记不同设备和尺寸大小上如何让你的设计发挥作用。</p><p>作 为设计师,我们的工作就是通过不同的限制解决问题。网页设计过程中,会遇到各种限制,包括概念和技术问题以及内容相关的问题。我们需要创建一个网 站,其不仅可以在理想状态下运行,同时也可以在最糟糕的环境下运行。例如,用户可使用相当小的屏幕查看网站,此时网站上的内容看起来支离破碎。</p><p>但是,鉴于我们展示设计作品的目的,我个人强烈建议为其创建最佳环境。因此我们将要显示最理想的内容量,同时以最佳浏览器尺寸进行展示,也就是用户最常用的环境。</p><p>14. 沉迷于设计,因爱生恨</p><p>如果你钻研设计,我保证你已经干过这种事。只要完成一项设计就会倍感自豪,设计已经成为生活的一部分了。还会截图,与其他设备比较,将其设为桌面背景,甚至打印出来挂在墙上。</p><p>整个过程中,我达到某个临界点,最终产生厌恶;我开始发现各种缺点和错误,然后进行修改。不喜欢自己以前的设计是成熟的表现,也就是说,你最终发现自己的问题。</p><p>15. 与客户交流前避免浪费太多时间设计概念</p><p>提交交互概念或设计外观与体验时,你需要确保你和客户尽快同步。初始概念通过审核后,你可以稍作放松,然后开始设计。</p><p>但是如果提交后初始概念后,并未深得客户的欢心,你就应该收集各种反馈,以便第二次提交的概念方案能够符合客户的要求。</p><p>16. 和你的开发者成为好友</p><p>纽约广告公司 HUGE 的 Rafael Mumme 就设计师如何更好地与开发者合作的提出的建议。</p><p>开 发者创意十足,而且热爱自己的工作,和你一样。但是他们并非总是在项目一开始就参与其中,而且大多时候,他们都是在概念设计敲定之后才开始参与设 计的,因此他们的创意工作就遭到了抹杀。这种流程是错误的;一些非常优秀的想法都是开发团队提出的。分享你的概念,你会惊喜地发现他们会把它变成更加美 观、更加便于设计。</p><p>17. 展示:说明时请将受众想象为四岁儿童</p><p>展示作品和设计作品一样重要。使用错误的展示方式,可能会埋没优秀的设计或者使其惨遭淘汰。谨记,受众第一次看到你的设计时,并不了解你了然于心的各个重点。</p><p>18. 肯定自己的创意,但不要成为其奴隶</p><p>了解何时宣传自己的创意,或是了解团队或客户何时会产生分歧,这里存在一个小小的临界点。作为设计师,你需要坚信自己的设计,但是你也应乐于接受他人意见,快速改变自己的创意以及展开后续调整。不要忘记条条大路通罗马。</p><p>19. 开发过程中跟进设计</p><p>如 果您在广告公司中工作,你必须明白,虽然你刚刚完成的一个项目已经投入开发,你不得不参加另一个新项目的设计,这是家常便饭。大家普遍认为 PSD 和样式表提交后就万事大吉了,这是不对的,其实一切还刚刚开始。如果你真的关心自己的设计和交互理念是否完全贯彻,可以实时与开发者友人沟通,并尽量提供 帮助,以便达到至臻至美的效果。</p><p>20. 逐步正在设计的作品</p><p></p><p>与大家分享样式表和正在设计的组件</p><p>作 为设计团队的一员,我们不仅希望看到最终的成品,同时也想看一看正在设计的作品。有时候,出于种种原因,项目最优秀的部分可能会被忽略,然后一直 存放在归档文件夹中。项目完成并获得客户/制作方认可后,可以着手进行改善,如有可能,可以创建案例研究,分析设计中的作品以及最终并未采用的作品。这有 助于帮助拓宽团队知识,同时你也能收集宝贵的反馈意见。</p><p>Claudio Guglieri 目前在纽约国际电子广告公司 B-Reel 就任艺术总监。之前在 Fantasy Interactive 任艺术总监,负责领导和制作客户端交互体验,如 Google、EA CNN、Nikelodeon、History Channel、Range Roverand Microsoft。</p>

阅读剩余部分 -

点:win 8 metro风格是用户体验的噩梦

微软全线转移到metro风格是一场豪赌,虽然我个人预感这场赌博会以微软惨败收场。我使用过windows phone 8手机,也抢鲜安装过windows 8操作系统,接下来我想谈谈自己的一点体会。

从"用户-App-信息"到"用户-信息"

阅读剩余部分 -

产品经理经常犯的十大顶级错误

做好一个产品经理非常不容易,经常容易犯错误。本文详细描述了产品经理经常犯的十大顶级错误。对产品经理、技术负责人、创业者,都可以借鉴。

作者:无招、鬼脚七。无招是一淘网的资深产品专家,对电子商务、数据挖掘类、互联网产品有丰富经验;鬼脚七曾经负责过大淘宝搜索产品,对产品设计和产品管理有自己的思考。

产品经理需要创造产品。上帝也是个产品经理,他创造了人这个产品。

做一个成功的产品非常难,除了有资源、时机等问题以外,更大因素在产品经理自己。好的产品经理能协调资源,能把握时机。但产品经理自己也经常犯错误。一直想写一篇文章,关于产品经理容易犯的错误,但担心自己在产品方面的经验不够多,迟迟没有动笔。

阅读剩余部分 -

百度App产品经理分享:App应用五大产品法则(转)

既然是抖干货,也不想多废话。但背景必须交代一下。

我受邀参加过几次百度的开放日活动。这种PM的宣讲,有个好处,你可以把PM和产品对上号,下来再点对点沟通,收获会大得多。

我对百度PM的印象还挺留在俞军(第一代)、李明远(算1.5代?)时代,贴吧、知道无论如何评选,都是殿堂级的。后来的百度确实没做出过几款像样的产品,包括已经废掉的百度Hi,半废掉的空间等。

现在的百度PM到底是第几代,我也不清楚。这几次参加活动,认识了百度App的产品经理和leader,本文就是整理自我们的往来邮件。我尽量不带感情色彩的归纳,希望给各位做移动互联网的兄弟一些启发。文中的数据获得披露授权。

阅读剩余部分 -

产品经理如何行之有效的提高执行力

看到地脏了,想扫地,然后拿了把扫帚把地扫了,地扫干净了,这就是执行。

目标

执行的过程,首先要确认的是目标:

有个清晰、可评估、可衡量的目标

你的目标是什么?——这里的目标就是把地扫干净。

你的目标到底满足的需求是什么?或解决的问题是什么?

这里满足的需求——把地弄干净;这里解决的问题——把脏的地弄干净了。

阅读剩余部分 -

10个CSS简写/优化技巧

<div><p>CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化CSS缩写。CSS简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读。</p><p>下面介绍常见的CSS简写规则:</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><h4>一、盒子大小</h4><p>这里主要用于两个属性:margin和padding,我们以margin为例,padding与之相同。盒子有上下左右四个方向,每个方向都有个外边距:</p><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </td> <td> <div> <div>margin-top:1px;</div> <div>margin-right:2px;</div> <div>margin-bottom:3px;</div> <div>margin-left:4px;</div> </div> </td> </tr> </tbody></table><pre> </pre><p>你可以简写成:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>margin:1px2px3px4px;</div> </div> </td> </tr> </tbody></table><p>语法 margin:top right bottom left;</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> </td> <td> <div> <div>//四个方向的边距相同,等同于margin:1px1px1px1px;</div> <div>margin:1px;</div> <div>//上下边距都为1px,左右边距均为2px,等同于margin:1px2px1px2px;</div> <div>margin:1px2px;</div> <div>//右边距和左边距相同,等同于margin:1px2px3px2px;</div> <div>margin:1px2px3px;</div> <div>//注意,这里虽然上下边距都为1px,但是这里不能缩写。</div> <div>margin:1px2px1px3px;</div> </div> </td> </tr> </tbody></table><p>二、边框(border)</p><p>边框的属性如下:</p><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> </td> <td> <div> <div>border-width:1px;</div> <div>border-style:solid;</div> <div>border-color:#000;</div> </div> </td> </tr> </tbody></table><pre> </pre><p>可以缩写为一句:</p><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>border:1pxsolid#000;</div> </div> </td> </tr> </tbody></table><p>语法 border:width style color;</p><h4>三、背景(Backgrounds)</h4><p>背景的属性如下:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </td> <td> <div> <div>background-color:#f00;</div> <div>background-image:url(background.gif);</div> <div>background-repeat:no-repeat;</div> <div>background-attachment:fixed;</div> <div>background-position:00;</div> </div> </td> </tr> </tbody></table><p>可以缩写为一句:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>background:#f00url(background.gif) no-repeatfixed00;</div> </div> </td> </tr> </tbody></table><p>语法是background:color image repeat attachment position;
你可以省略其中一个或多个属性值,如果省略,该属性值将用浏览器默认值,默认值为:</p><ul> <li> <p>color: transparent</p> </li> <li> <p>image: none</p> </li> <li> <p>repeat: repeat</p> </li> <li> <p>attachment: scroll</p> </li> <li> <p>position: 0% 0%</p> </li></ul><h4>四、字体(fonts)</h4><p>字体的属性如下:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </td> <td> <div> <div>font-style:italic;</div> <div>font-variant:small-caps;</div> <div>font-weight:bold;font-size:1em;</div> <div>line-height:140%;</div> <div>font-family:"Lucida Grande",sans-serif;</div> </div> </td> </tr> </tbody></table><p>可以缩写为一句:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>font:italicsmall-capsbold1em/140%"Lucida Grande",sans-serif;</div> </div> </td> </tr> </tbody></table><p>注意,如果你缩写字体定义,至少要定义font-size和font-family两个值。</p><h4>五、列表(lists)</h4><p>取消默认的圆点和序号可以这样写list-style:none;,
list的属性如下:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> </td> <td> <div> <div>list-style-type:square;</div> <div>list-style-position:inside;</div> <div>list-style-image:url(image.gif);</div> </div> </td> </tr> </tbody></table><p>可以缩写为一句:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>list-style:squareinsideurl(image.gif);</div> </div> </td> </tr> </tbody></table><p>六、颜色(Color)</p><p>16进制的色彩值,如果每两位的值相同,可以缩写一半。例如:</p><p>Aqua: #00ffff ——#0ff
Black: #000000 ——#000
Blue: #0000ff ——#00f
Dark Grey: #666666 ——#666
Fuchsia:#ff00ff ——#f0f
Light Grey: #cccccc ——#ccc
Lime: #00ff00 ——#0f0
Orange: #ff6600 ——#f60
Red: #ff0000 ——#f00
White: #ffffff ——#fff
Yellow: #ffff00 ——#ff0</p><h4>七、属性值为0</h4><p>书写原则是如果CSS属性值为0,那么你不必为其添加单位(如:px/em),你可能会这样写:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>padding:10px5px0px0px;</div> </div> </td> </tr> </tbody></table><p>试试这样吧:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> </td> <td> <div> <div>padding:10px5px00;</div> </div> </td> </tr> </tbody></table><p>八、最后一个分号</p><p>最后一个属性值后面分号可以不写,如:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </td> <td> <div> <div>#nav{</div> <div>border-top:4pxsolid#333;</div> <div>font-style: normal;</div> <div>font-variant:normal;</div> <div>font-weight: normal;</div> <div>}</div> </div> </td> </tr> </tbody></table><p>可以简写成:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </td> <td> <div> <div>#nav{</div> <div>border-top:4pxsolid#333;</div> <div>font-style: normal;</div> <div>font-variant:normal;</div> <div>font-weight: normal</div> <div>}</div> </div> </td> </tr> </tbody></table><p>九、字体粗细(font-weight)</p><p>你可能会这样写:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </td> <td> <div> <div>h1{</div> <div>font-weight:bold;</div> <div>}</div> <div>p{</div> <div>font-weight:normal;</div> <div>}</div> </div> </td> </tr> </tbody></table><p>可以简写成:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> </td> <td> <div> <div>h1{</div> <div>font-weight:700;</div> <div>}</div> <div>p{</div> <div>font-weight:400;</div> <div>}</div> </div> </td> </tr> </tbody></table><h4>十、圆角半径(border-radius)</h4><p>border-radius是css3中新加入的属性,用来实现圆角边框。</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </td> <td> <div> <div>-moz-border-radius-bottomleft:6px;</div> <div>-moz-border-radius-topleft:6px;</div> <div>-moz-border-radius-topright:6px;</div> <div>-webkit-border-bottom-left-radius:6px;</div> <div>-webkit-border-top-left-radius:6px;</div> <div>-webkit-border-top-right-radius:6px;</div> <div>border-bottom-left-radius:6px;</div> <div>border-top-left-radius:6px;</div> <div>border-top-right-radius:6px;</div> </div> </td> </tr> </tbody></table><p>可以简写成:</p><pre> </pre><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div>1</div> <div>2</div> <div>3</div> </td> <td> <div> <div>-moz-border-radius:06px6px;</div> <div>-webkit-border-radius:06px6px;</div> <div>border-radius:06px6px;</div> </div> </td> </tr> </tbody></table><p>语法 border-radius:topleft topright bottomright bottomleft</p></div>

阅读剩余部分 -

vsftp登录报错”500 OOPS: cannot change directory:/home/*******”处理方式

<p>打开/etc/selinux/config</p><p>将selinux=enforcing或permissive改成disabled。</p><p>记得要重新启动服务器!</p><p>当然还要确定以下问题:</p><p>1, 用户是否被 vsftpd 限制登录, 比如用户名在 /etc/ftpusers 中,并被阻止登录了</p><p>2, vsftpd.conf 中是否打开了pam认证的选项 (自己编译安装的时候常因为这个出错) (看vsftpd.conf中是否有pam_service_name=ftp或vsftpd.到底是哪个要看
PAM模块的服务文件/etc/pam.d下是谁.我的是ftp且它的配置如下:</p><p>#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_unix.so shadow nullok
auth required /lib/security/pam_shells.so
account required /lib/security/pam_unix.so
session required /lib/security/pam_unix.so
如果/etc/ftpusers有的用户将被deny</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>3, 相关文件夹的权限是否正确.</p><p>关于“vsftpd 部分本地用户不能登录,部分可以”的问题,
系统中原来就有的本地帐号都不能登录,我的/etc/vsftpd/vsftpd.conf文件的配置如下:</p><p>local_enable=YES
write_enable=YES
chroot_local_user=YES
pam_service_name=vsftpd
/etc/pam.d/vsftpd存在且正常。</p><p>登录时错误信息都是一样的:
500 OOPS: cannot change directory:/home/xxxx
Login failed.
421 Service not available, remote server has closed connection</p><p>他们的home目录都是/home/xxxx。/home和/home/xxxx的权限都是755。
以上这些帐号都不能ftp登录,这些都是平常经常使用的,可以用shell登录的。</p><p>我新创建了一个usr1帐号
# useradd -G test -d /tmp/usr1 usr1
能ftp登录,他的home为/tmp/usr1,在/分区上。而/home我是mount到/dev/hda9上的。
#mount
/dev/hdb1 on / type ext3 (rw)
/dev/hda9 on /home type ext2 (rw)</p><p>所以,我猜想:是否是由于/home分区的原因,而造成“主目录在/home分区的帐号”都不能登录呢?</p><p>为了验证以上设想,我试着再创建了一个帐号
useradd -G test -d /home/usr3 usr3
/home, /home/usr3 的权限都是755。</p><p>usr3 ftp登录失败。
500 OOPS: cannot change directory:/home/usr3
Login failed.
421 Service not available, remote server has closed connection</p><p>至此,我觉得可以确定是由于/home分区的原因,而造成“主目录在/home分区的帐号”都不能登录。</p><p>参考文章:
I finished my second upgrade to Fedora Core 4. Not everything is ironed out yet with the build of course. But one thing is for sure a lot has happened to the RedHat I knew before.</p><p>I must say of all the changes, for me the nicest addition is the new SELinux extensions. For deep background on the reasons for and theory of SELinux read, The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments</p><p>The more I work with SELinux the more I realize I need to know about it, and how exactly it does all its stuff. It certainly changes things relating to users, directories and access. As I am starting to learn it, I’m sure I’m doing things the hard-way. [:)]</p><p>The major difference, so far for me, in Red Hat’s SELinux is the way ftp is handled. vsftpd is still the server which is great. However, it seems to be designed to run as a daemon rather than invoked via xinet.d. If you grab a working copy of the xinet.d file for vsftpd you can invoke it via xinet.d wrapper. I did my first server upgrade in this manner. The current one I am trying as a daemon. I certainly think I will miss some of the features that the xinet.d wrapper brings, and may yet return to it.</p><p>Of all the issues I saw most notable is if you want to enable chroot directory’s outside of the normal /home/xxx vsftpd. These will fail with a</p><p>500 OOPS: cannot change directory: /mnt/xxxxx</p><p>I was able to use ftp if I logged in with an account with a directory in /home, but once I set a user account to have a home drive outside of /home (in this case on a mounted secondary disk) vsftpd barfs the above.</p><p>I found information at the NSA that indicates you can disable SELinux protection of the ftp daemon.</p><p>setsebool -P ftpd_disable_trans 1</p><p>This seems a bit drastic. It certainly works for now though.</p><p>I think ultimately the issue resides with policies, but as SELinux policies are new to me, it will take time before it all gets sorted out. As I spend time with the new SELinux extensions in Fedora Core 4 I will keep you updated on my thoughts and configuration lessons.</p><p>解决办法:
# setsebool ftpd_disable_trans 1</p><p># service vsftpd restart</p><p>在ssh输入命令:
setsebool ftpd_disable_trans 1
为避免每次开机都要作这个操作,可在setsebool命令后面加上-P选项,使改动永久有效。
service vsftpd restart</p><p>解决方法如下,需要将capability模块加载,
手动加载模块:
# modprobe capability
或者编译进内核:
CONFIG_SECURITY_CAPABILITIES: This enables the “default” Linux capabilities functionality.
If you are unsure how to answer this question, answer Y.
Symbol: SECURITY_CAPABILITIES [=y]
Prompt: Default Linux Capabilities
Defined at security/Kconfig:56
Depends on: SECURITY
Location:
-> Security options
-> Enable different security models (SECURITY [=y])</p>

阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接