زکات علم

زَکاةُ العِلمِ أن تُعَلِّمَهُ عِبادَ اللّه‏ِ امام باقر (ع)
زکات علم

مطالبی در زمینه کامپیوتر و علاقه مندی های شخصی من مطالب این وبلاگ غالبا مطالبی ست که در جای جای اینترنت کتاب یا دانشته های شخصی خودم می باشد که به عنوان مرجعی برای رجوع دوباره در اینجا جمع آوری شده اند .
ehsunitd.ir personal website

پیوندها

۵۲ مطلب با موضوع «linux» ثبت شده است

Update Types

Automatic background updates were introduced in WordPress 3.7 in an effort to promote better security, and to streamline the update experience overall. By default, only minor releases – such as for maintenance and security purposes – and translation file updates are enabled on most sites.

In WordPress, there are four types of automatic background updates:

  1. Core updates
  2. Plugin updates
  3. Theme updates
  4. Translation file updates

Core Updates

Core updates are subdivided into three types:

  1. Core development updates, known as the "bleeding edge"
  2. Minor core updates, such as maintenance and security releases
  3. Major core release updates

By default, every site has automatic updates enabled for minor core releases and translation files. Sites already running a development version also have automatic updates to further development versions enabled by default.

Update Configuration

Automatic updates can be configured using one of two methods: defining constants in wp-config.php, or adding filters using a Plugin.

Configuration via wp-config.php

Using wp-config.php, automatic updates can be disabled completely, and core updates can be disabled or configured based on update type.

Constant to Disable All Updates

The core developers made a conscious decision to enable automatic updates for minor releases and translation files out of the box. Going forward, this will be one of the best ways to guarantee your site stays up to date and secure and, as such, disabling these updates is strongly discouraged.

To completely disable all types of automatic updates, core or otherwise, add the following to your wp-config.php file:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Constant to Configure Core Updates

To enable automatic updates for major releases or development purposes, the place to start is with the WP_AUTO_UPDATE_COREconstant. Defining this constant one of three ways allows you to blanket-enable, or blanket-disable several types of core updates at once.

define( 'WP_AUTO_UPDATE_CORE', false );

WP_AUTO_UPDATE_CORE can be defined with one of three values, each producing a different behavior:

  • Value of true – Development, minor, and major updates are all enabled
  • Value of false – Development, minor, and major updates are all disabled
  • Value of 'minor' – Minor updates are enabled, development, and major updates are disabled

Note that only sites already running a development version will receive development updates. For other sites, settingWP_AUTO_UPDATE_CORE to true will mean that it will only get minor and major updates.

Configuration via Filters

Using filters allows for fine-tuned control of automatic updates.

The best place to put these filters is in a must-use plugin.

Note: Do not add add_filter() calls in wp-config.php - causes conflicts with WP-CLI and possibly other problems.

Disabling All Updates Via Filter

You can also disable all automatic updates using the following filter:

add_filter( 'automatic_updater_disabled', '__return_true' );

Core Updates via Filter

To disable all core-type updates only, use the following filter:

add_filter( 'auto_update_core', '__return_false' );

But let's say rather than enabling or disabling all three types of core updates, you want to selectively enable or disable them. That's where the allow_dev_auto_core_updatesallow_minor_auto_core_updates, and allow_major_auto_core_updates filters come in.

There are two shorthand functions built into WordPress that will allow you to enable or disable specific types of core updates with single lines of code. They are __return_true and __return_false. Here are some example filters:

To specifically enable automatic updates even if a VCS folder (.git, .hg, .svn etc) was found in the WordPress directory or any of its parent directories:

add_filter( 'automatic_updates_is_vcs_checkout', '__return_false', 1 );

To specifically enable development (nightly) updates, use the following:

add_filter( 'allow_dev_auto_core_updates', '__return_true' );

To specifically disable minor updates, use the following:

add_filter( 'allow_minor_auto_core_updates', '__return_false' );

To specifically enable minor updates, use the following:

add_filter( 'allow_minor_auto_core_updates', '__return_true' );

To specifically disable major updates, use the following:

add_filter( 'allow_major_auto_core_updates', '__return_false' );

To specifically enable major updates, use the following:

add_filter( 'allow_major_auto_core_updates', '__return_true' );

Plugin & Theme Updates via Filter

Automatic plugin and theme updates are disabled by default. To enable them, you can leverage the auto_update_$type filter, where$type would be replaced with "plugin" or "theme".

To enable automatic updates for plugins, use the following:

add_filter( 'auto_update_plugin', '__return_true' );

To enable automatic updates for themes, use the following:

add_filter( 'auto_update_theme', '__return_true' );

Translation Updates via Filter

Automatic translation file updates are already enabled by default, the same as minor core updates.

To disable translation file updates, use the following:

add_filter( 'auto_update_translation', '__return_false' );

Disable Emails via Filter

// Disable update emails
add_filter( 'auto_core_update_send_email', '__return_false' );

This filter can also be used to manipulate update emails according to email $type (success, fail, critical), update type object $core_update, or $result:

/* @param bool   $send        Whether to send the email. Default true.
 * @param string $type        The type of email to send.
 *                            Can be one of 'success', 'fail', 'critical'.
 * @param object $core_update The update offer that was attempted.
 * @param mixed  $result      The result for the core update. Can be WP_Error.
 */
apply_filters( 'auto_core_update_send_email', true, $type, $core_update, $result );

Resources

  • ehsan gholami

مقاله امروز مدرسه وردپرس به شخصی سازی پیشخوان وردپرس اشاره دارد. با مطالعه این مقاله خواهید توانست پیشخوان سایت وردپرسی خود را کاملا سفارشی کنید. در این آموزش نحوه تغییر متن فوتر پیشخوان، حذف برخی منوهای سایدبار راست و غیرفعال کردن پیغام آپدیت وردپرس را خواهیم گفت.

این دستورات را هم می توانید به شکل افزونه نوشته و هم می توانید در فایل پوسته خودتون قرار دهید. اگر با روش افزونه نویسی آشنا نیستید مقاله آموزش افزونه نویسی وردپرس می تواند کمکتان کند.

در صورتی که می خواهید این دستورات با فعال شدن پوسته اعمال شود، پس فایل function.php پوسته را برای ادیت باز کنید.

خب حالا شروع می کنیم:

۱- تغییر متن فوتر پیشخوان وردپرس:

تغییر متن فوتر پیشخوان وردپرس

برای تغییر متن فوتر کافیست کد زیر را در فانکشن پوسته و یا افزونه قرار دهید:

 

۲- حذف گزینه های منوی سمت راست پیشخوان:

برای انجام این کار هم کافیست کدی که در زیر معرفی کرده ام را در فانکشن یا افزونه قرار دهید:

در کد بالا، اقدام به حذف منو رسانه کردیم. شما می توانید نام منو مورد نظر را به جای کلمه رسانه قرار دهید

 

۳- غیرفعال کردن پیغام آپدیت وردپرس:

غیرفعال کردن پیغام آپدیت وردپرس

توصیه می شود که وردپرس خود را همیشه بروز نگه دارید، اما گاهی ممکن است که از پیغام های آپدیت وردپرس خسته شده باشید و بخواهید این پیغام ها را غیرفعال کنید. در این قسمت آموزش انجام این کار را خواهیم گفت. برای این کار کد زیر را در فانکشن و یا افزونه قرار دهید:

  • ehsan gholami

بروزرسانی در وردپرس را میتوان به عنوان یکی از مهم ترین و اصلی ترین قسمت های این سیستم مدیریت محتوا معرفی کرد چرا که همواره به دلیل پیدا شدن باگ ها و اشکالات دیگر در هسته وردپرس ، پوسته و افزونه های آن به سرعت پس از برطرف نمودن مشکل ایجاد شده ، نسخه ی جدیدی از سیستم مدیریت محتوا وردپرس ، قالب و پلاگین های آن از طرف تیم وردپرس انتشار می یابد و کاربران به راحتی از طریق پیغامی که ارائه نسخهء جدید را به اطلاع آنها می رساند میتوانند با مراجعه به صفحه ی مربوطه فایل مورد نظر را دریافت و بصورت دستی نسخهء قدیمی خود را بروز کنند و یا اینکه بصورت خودکار و از طریق وردپرس خود اقدام به بروزرسانی نسخه های قدیمی کنند .

این بروزرسانی ها بسیار مهم و حیاتی هستند چرا که در صورت عدم بروزرسانی سایت یا وبلاگ شما بیشتر آسیب پذیر خواهد شد و به دلیل وجود باگ ها در وردپرس ، پوسته و افزونه های شما ، از نظر امنیتی در سطح پایین تری قرار خواهید گرفت که در پی آن آسیب های جبران ناپذیری را متحمل خواهید شد .

در نگاهی دیگر سمت کاربرانی می رویم که تمایلی به این بروزرسانی ها ندارند و نمایش پیام ها و اخطارهای به روزرسانی در وردپرس برای آنها آزار دهنده شده است و یا طراحانی که تمایلی به نمایش پیغام ها برای مشتریان خود را ندارند چرا که ممکن است بعد از بروز رسانی تغییراتی که آنها در هسته وردپرس ، پوسته و یا افزونه ها ایجاد نموده اند از بین برود . در همین راستا در این نوشته از ماندگار وب بنا به درخواست یکی از بازدیدکنندگان افزونه و هکی را برای شما دوستان آماده کرده ایم که به راحتی میتوانید این پیام ها را بصورت کامل حذف و یا آنها را مخفی نمایید .

اگر تمایل به حذف پیغام بروزرسانی در وردپرس بصورت کامل را ندارید می توانید از هک زیر استفاده کنید برای مخفی کردن پیام بروزرسانی در وردپرس می بایست این هک را به فایل functions.php موجود در پوسته خود اضافه نمایید ، لطفا” قبل از ایجاد هر تغییری در این فایل از آن نسخه پشتیبان تهیه نمایید تا در صورت بروز خطا آن را به حالت اول بازگردانید .

add_action('admin_menu','wphidenag');
function wphidenag() {
remove_action( 'admin_notices''update_nag', 3 );
}

و برای حذف پیام بروز رسانی هسته وردپرس از افزونه Disable WordPress Core Updates
حذف پیغام بروز رسانی پلاگین های وردپرس از افزونه Disable WordPress Plugin Updates
حذف پیام بروزرسانی در پوسته های وردپرس از افزونه Disable WordPress Theme Updates
استفاده نمایید که هر سه افزونه را میتوانید از همین صفحه دریافت نمایید .
موفق باشید .

  • ehsan gholami

OpenCart v1.x Framework Explanation

Postby Qphoria » Fri Feb 20, 2009 8:46 pm

OpenCart 1.x is a cart application built on top of its own in-house framework. The framework uses an MVC style design pattern. The language piece of opencart is an additional variable layer and isn't part of the pattern persay, but it is important to understand the localization and how text for different languages is used:

First off, OpenCart's root directory looks something like this:
admin - the admin directory path is all the code on the backend of your site. This is completely separate from the catalog area and can even be stored on a different host if you prefer.
catalog - the catalog directory path stores all the code on the front end of your site
image - the image directory path is where all the product images are stored
download - the download directory path is where all the downloads are stored
system - the system path has all the common libraries and engine code. Both admin and catalog use this folder, so if storing admin on another server, you will also need to copy the system folder there.

In the catalog and admin directories, a common tree based on the MVC architecture is formed:
Model - Database layer - All calls to the database are done here, referenced from the controller. The purpose of a model is to always have structured db calls so that all other files have access to the same db queries.
View - Template display - This is where the HTML and designing is done in the respective tpl files.
Controller - Main controlling code base - This is where the functional code logic is processed and variables for the view are setup
Language - Localization/Language - This is where you set which constants translate to text for things like heading titles, static links and text, etc. Note that this is not part of MVC, just another variable layer that makes using multiple language easier.

Most files follow the naming pattern of the main controller...
So for example, for the product page on the frontend, there are 4 main files:
M: \catalog\model\catalog\product.php
V: \catalog\view\theme\default\template\product\product.tpl
C: \catalog\controller\product\product.php
Language: \catalog\language\english\product\product.php

Similarly, on the admin side, to set those fields, there are 4 main files as well:
M: \admin\model\catalog\product.php
V: \admin\view\template\catalog\product_form.tpl
C: \admin\controller\catalog\product.php
Language: \admin\language\english\catalog\product.php

Try to follow those files for existing fields, like 'model number' and see if you can duplicate all the places you find model number being used and replace it with your new field(s). Don't forget to also add the new columns to the product table in the database.
  • ehsan gholami

Method # 1: Find and delete everything with find command only

The syntax is as follows to find and delete all empty directories:

 
find /path/to/dir -empty -type d -delete
 

Find and delete all empty files:

 
find /path/to/dir -empty -type f -delete
 

Where,

  • -empty : Only find empty files and make sure it is a regular file or a directory.
  • -type d : Only match directories.
  • -type f : Only match files.
  • -delete : Delete files. Always put -delete option at the end of find command as find command line is evaluated as an expression, so putting -delete first will make find try to delete everything below the starting points you specified.

Method # 2: Find and delete everything using xargs and rm/rmdir command

The syntax is as follows to find and delete all empty directories:

 
## secure and fast version ###
find /path/to/dir/ -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"
 

OR

## secure but may be slow due to -exec  ##
find /path/to/dir -type d -empty -print0 -exec rmdir -v "{}" \;

The syntax is as follows to delete all empty files:

 
## secure and fast version ###
find /path/to/dir/ -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"
 

OR

 
## secure but may be slow due to -exec  ##
find . -type f -empty -print0 -exec rm -v "{}" \;
  • ehsan gholami

Table of Contents:

  1. Backup software
    1. File backup software
    2. Imaging software
  2. Browsers
  3. Console (Terminal) utilities
  4. Emulators
  5. Encryption
  6. Forensic tools
  7. FTP clients
  8. HTML editing
  9. Image manipulation

    1. Digital cameras
    2. Image suite
    3. Viewers
    4. Web cameras
  10. Instant Messaging & Video conferencing
  11. Live CDs (best choices)

    1. Other useful distributions
  12. Mail clients
  13. Multimedia

    1. CD/DVD burning
    2. Conversion tools - Audio
    3. Conversion tools - DVD & Video
    4. Conversion tools - all categories
    5. Desktop recording & presentation software
    6. Players - Audio
    7. Players - Video
    8. Players - all categories
    9. Subtitles
  14. Office applications

    1. LaTeX-based text processors
    2. Office programs & suites
  15. Partitioning software
  16. Peer-to-Peer sharing
  17. Rescue & Recovery
  18. Security

    1. Firewalls
    2. Network scanners
    3. Rootkit tools
    4. Traffic sniffers
  19. Virtualization
  20. Users' recommendation
  • ehsan gholami

dmidecode -t 16 

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

cat /proc/cpuinfo | grep "cpu cores" | uniq

cat /proc/cpuinfo | grep "^processor" -c

cat /proc/cpuinfo | grep "model name" | sort | uniq

cat /proc/cpuinfo | grep "cpu MHz" | sort | uniq

lshw -class memory|less

  • ehsan gholami

پیش از هر چیز سرور را بروز رسانی نمایید:

yum update y

port مربوط به ssh را تغییر دهید.

nano /etc/ssh/sshd_config

و عبارت

# port 22

را بصورت زیر تغییر دهید.

port 1423

فراموش نکنید این port را در csf باز کنید!

خط شامل:

Protocol 2,1

را بصورت زیر تنظیم کنید.

Protocol 2

همچنین عبارت GSSAPIAuthentication را بصورت زیر تنظیم نمایید:

GSSAPIAuthentication no

قابلیت Limit Users’ SSH Access را نیز فعال نمایید. با این کار امکان ssh با root بصورت مستقیم وجود ندارد.

ابتدا باید یک group ایجاد نمایید تا user های درون این گروه تنها دسترسی ssh داشته باشند.

groupadd developers

اضافه کردن user جدید در گروه مورد نظر:

useradd -G developers newuser

در صورتی که user قبلا ایجاد شده برای اضفه کردن به گروه خاص از دستور زیر استفاده نمایید:

usermod -a -G developers newuser

در فایل sshd_config در انتهای کد ها باید به group خود اجازه دسترسی ssh را وارد نمایید:

AllowGroups developers

در ادامه باید به user نیز این اجازه را بدهید:

AllowUsers  newuser

در انتها برای جلوگیری از ورود مستقیم با root خط :

PermitRootLogin yes

را بصورت زیر تنظیم نمایید:

PermitRootLogin no

توجه داشته باشید با این تغییر امکان ssh با root وجود نخواهد داشت.

در پایان سرویس sshd را restart نمایید.

service sshd restart
  • ehsan gholami

NTFS-3G

NTFS-3G is a stable, open source, GPL licensed, POSIX, read/write NTFS driver for Linux. It provides safe handling of the Windows XP, Windows Server 2003, Windows 2000, Windows Vista, Windows Server 2008 and Windows 7 NTFS file systems.

NTFS-3G can create, remove, rename, move files, directories, hard links, and streams; it can read and write normal and transparently compressed files, including streams and sparse files; it can handle special files like symbolic links, devices, and FIFOs, ACL, extended attributes; moreover it provides full file access right and ownership support.

How Do I Install NTFS-3G?

Type the following command as root user:

# yum install ntfs-3g

Sample outputs:

yum install ntfs-3g
Loaded plugins: product-id, rhnplugin, subscription-manager
Updating Red Hat repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ntfs-3g.x86_64 2:2011.4.12-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================
 Package         Arch           Version                     Repository    Size
===============================================================================
Installing:
 ntfs-3g         x86_64         2:2011.4.12-3.el6           epel         247 k
Transaction Summary
===============================================================================
Install       1 Package(s)
Total download size: 247 k
Installed size: 624 k
Is this ok [y/N]:

How Do I Find Out NTFS Partition Name?

Simply type the following command:

# fdisk -l /dev/sda
# fdisk -l /dev/sdb

Sample outputs:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf0000000
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              14       60802   488281089    5  Extended
/dev/sda5              14       59767   479970304   83  Linux
/dev/sda6           59767       60802     8309760   82  Linux swap / Solaris

How Do I Mount /dev/sda1 NTFS Partition at /mnt/ntfs?

First, load the fuse driver, enter:

# modprobe fuse

Create a mount point, enter:

# mkdir /mnt/ntfs

To mount the ntfs partition, enter:

# mount -t ntfs-3g /dev/sda1 /mnt/ntfs

You can use regular Unix commands to copy or access the files:

$ df -h
$ mount
$ cd /mnt/ntfs
$ cp foo /tmp

How Do I Unmount NTFS Partition?

Type the following command:

# umount /mnt/ntfs

mount -t ntfs-3g /dev/sda1 /mnt/ntfs

  • ehsan gholami
Linux Static IP
## Configure eth0
#
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=A4:BA:DB:37:F1:04
TYPE=Ethernet
BOOTPROTO=static
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
IPADDR=192.168.1.44
NETMASK=255.255.255.0
  • ehsan gholami